Add project code

This commit is contained in:
Andrew Trieu
2025-04-20 15:57:23 +03:00
committed by Andrew Trieu
commit 3fbd0e4977
612 changed files with 11196 additions and 0 deletions

8
.gitattributes vendored Normal file
View File

@@ -0,0 +1,8 @@
# Ignore .yy files for language statistics
*.yy linguist-generated=true
# force LF for metadata files for merge simplicity
*.gml text eol=lf
*.yy text eol=lf
*.yyp text eol=lf
*.json text eol=lf

59
.gitignore vendored Normal file
View File

@@ -0,0 +1,59 @@
# Windows
# Windows thumbnail cache files
Thumbs.db
Thumbs.db:encryptable
ehthumbs.db
ehthumbs_vista.db
# Dump file
*.stackdump
# Folder config file
[Dd]esktop.ini
# Recycle Bin used on file shares
$RECYCLE.BIN/
# Windows Installer files
*.cab
*.msi
*.msix
*.msm
*.msp
# Windows shortcuts
*.lnk
# Mac
## General
.DS_Store
.AppleDouble
.LSOverride
## Icon must end with two \r
Icon
## Thumbnails
._*
## Files that might appear in the root of a volume
.DocumentRevisions-V100
.fseventsd
.Spotlight-V100
.TemporaryItems
.Trashes
.VolumeIcon.icns
.com.apple.timemachine.donotpresent
## Directories potentially created on remote AFP share
.AppleDB
.AppleDesktop
Network Trash Folder
Temporary Items
.apdisk
# GameMaker temporary files
*.resource_order
*.old

158
Bit Blaster.yyp Normal file
View File

@@ -0,0 +1,158 @@
{
"$GMProject":"v1",
"%Name":"Bit Blaster",
"AudioGroups":[
{"$GMAudioGroup":"","%Name":"audiogroup_default","name":"audiogroup_default","resourceType":"GMAudioGroup","resourceVersion":"2.0","targets":-1,},
],
"configs":{
"children":[],
"name":"Default",
},
"defaultScriptType":0,
"Folders":[
{"$GMFolder":"","%Name":"Controllers","folderPath":"folders/Controllers.yy","name":"Controllers","resourceType":"GMFolder","resourceVersion":"2.0",},
{"$GMFolder":"","%Name":"Enemies","folderPath":"folders/Enemies.yy","name":"Enemies","resourceType":"GMFolder","resourceVersion":"2.0",},
{"$GMFolder":"","%Name":"Fonts","folderPath":"folders/Fonts.yy","name":"Fonts","resourceType":"GMFolder","resourceVersion":"2.0",},
{"$GMFolder":"","%Name":"Generic","folderPath":"folders/Generic.yy","name":"Generic","resourceType":"GMFolder","resourceVersion":"2.0",},
{"$GMFolder":"","%Name":"Player","folderPath":"folders/Player.yy","name":"Player","resourceType":"GMFolder","resourceVersion":"2.0",},
{"$GMFolder":"","%Name":"Rooms","folderPath":"folders/Rooms.yy","name":"Rooms","resourceType":"GMFolder","resourceVersion":"2.0",},
{"$GMFolder":"","%Name":"Scripts","folderPath":"folders/Scripts.yy","name":"Scripts","resourceType":"GMFolder","resourceVersion":"2.0",},
{"$GMFolder":"","%Name":"Sounds","folderPath":"folders/Sounds.yy","name":"Sounds","resourceType":"GMFolder","resourceVersion":"2.0",},
{"$GMFolder":"","%Name":"Spells","folderPath":"folders/Spells.yy","name":"Spells","resourceType":"GMFolder","resourceVersion":"2.0",},
],
"ForcedPrefabProjectReferences":[],
"IncludedFiles":[
{"$GMIncludedFile":"","%Name":"SpecialElite-Regular.ttf","CopyToMask":-1,"filePath":"datafiles","name":"SpecialElite-Regular.ttf","resourceType":"GMIncludedFile","resourceVersion":"2.0",},
{"$GMIncludedFile":"","%Name":"Tiny5-Regular.ttf","CopyToMask":-1,"filePath":"datafiles","name":"Tiny5-Regular.ttf","resourceType":"GMIncludedFile","resourceVersion":"2.0",},
],
"isEcma":false,
"LibraryEmitters":[],
"MetaData":{
"IDEVersion":"2024.13.0.190",
},
"name":"Bit Blaster",
"resources":[
{"id":{"name":"fnt_Special_Elite","path":"fonts/fnt_Special_Elite/fnt_Special_Elite.yy",},},
{"id":{"name":"fnt_Tiny5","path":"fonts/fnt_Tiny5/fnt_Tiny5.yy",},},
{"id":{"name":"o_all_hurt","path":"objects/o_all_hurt/o_all_hurt.yy",},},
{"id":{"name":"o_archer","path":"objects/o_archer/o_archer.yy",},},
{"id":{"name":"o_arrow","path":"objects/o_arrow/o_arrow.yy",},},
{"id":{"name":"o_blocker_destroyed","path":"objects/o_blocker_destroyed/o_blocker_destroyed.yy",},},
{"id":{"name":"o_blocker_stump","path":"objects/o_blocker_stump/o_blocker_stump.yy",},},
{"id":{"name":"o_blocker","path":"objects/o_blocker/o_blocker.yy",},},
{"id":{"name":"o_camera","path":"objects/o_camera/o_camera.yy",},},
{"id":{"name":"o_disc","path":"objects/o_disc/o_disc.yy",},},
{"id":{"name":"o_end_screen","path":"objects/o_end_screen/o_end_screen.yy",},},
{"id":{"name":"o_enemy_hurt","path":"objects/o_enemy_hurt/o_enemy_hurt.yy",},},
{"id":{"name":"o_explosion","path":"objects/o_explosion/o_explosion.yy",},},
{"id":{"name":"o_explosive","path":"objects/o_explosive/o_explosive.yy",},},
{"id":{"name":"o_fireball","path":"objects/o_fireball/o_fireball.yy",},},
{"id":{"name":"o_game_over","path":"objects/o_game_over/o_game_over.yy",},},
{"id":{"name":"o_heal","path":"objects/o_heal/o_heal.yy",},},
{"id":{"name":"o_hud","path":"objects/o_hud/o_hud.yy",},},
{"id":{"name":"o_icebolt","path":"objects/o_icebolt/o_icebolt.yy",},},
{"id":{"name":"o_inputs","path":"objects/o_inputs/o_inputs.yy",},},
{"id":{"name":"o_new_spell","path":"objects/o_new_spell/o_new_spell.yy",},},
{"id":{"name":"o_parent_enemy","path":"objects/o_parent_enemy/o_parent_enemy.yy",},},
{"id":{"name":"o_parent_hurt","path":"objects/o_parent_hurt/o_parent_hurt.yy",},},
{"id":{"name":"o_pause_menu","path":"objects/o_pause_menu/o_pause_menu.yy",},},
{"id":{"name":"o_player_hurt","path":"objects/o_player_hurt/o_player_hurt.yy",},},
{"id":{"name":"o_player","path":"objects/o_player/o_player.yy",},},
{"id":{"name":"o_poison","path":"objects/o_poison/o_poison.yy",},},
{"id":{"name":"o_potion","path":"objects/o_potion/o_potion.yy",},},
{"id":{"name":"o_screen_pause_timed","path":"objects/o_screen_pause_timed/o_screen_pause_timed.yy",},},
{"id":{"name":"o_screen_pause","path":"objects/o_screen_pause/o_screen_pause.yy",},},
{"id":{"name":"o_shards","path":"objects/o_shards/o_shards.yy",},},
{"id":{"name":"o_solid_wall","path":"objects/o_solid_wall/o_solid_wall.yy",},},
{"id":{"name":"o_spawner","path":"objects/o_spawner/o_spawner.yy",},},
{"id":{"name":"o_start_menu","path":"objects/o_start_menu/o_start_menu.yy",},},
{"id":{"name":"o_tutorial","path":"objects/o_tutorial/o_tutorial.yy",},},
{"id":{"name":"o_wall","path":"objects/o_wall/o_wall.yy",},},
{"id":{"name":"r_initialize","path":"rooms/r_initialize/r_initialize.yy",},},
{"id":{"name":"r_main","path":"rooms/r_main/r_main.yy",},},
{"id":{"name":"camera_shake","path":"scripts/camera_shake/camera_shake.yy",},},
{"id":{"name":"create_screen_pause","path":"scripts/create_screen_pause/create_screen_pause.yy",},},
{"id":{"name":"create_weapon","path":"scripts/create_weapon/create_weapon.yy",},},
{"id":{"name":"destroy_projectile","path":"scripts/destroy_projectile/destroy_projectile.yy",},},
{"id":{"name":"draw_aimer","path":"scripts/draw_aimer/draw_aimer.yy",},},
{"id":{"name":"draw_tutorial_line","path":"scripts/draw_tutorial_line/draw_tutorial_line.yy",},},
{"id":{"name":"get_damaged_create","path":"scripts/get_damaged_create/get_damaged_create.yy",},},
{"id":{"name":"get_damaged_destroy","path":"scripts/get_damaged_destroy/get_damaged_destroy.yy",},},
{"id":{"name":"get_damaged","path":"scripts/get_damaged/get_damaged.yy",},},
{"id":{"name":"get_random_weapon","path":"scripts/get_random_weapon/get_random_weapon.yy",},},
{"id":{"name":"is_dying","path":"scripts/is_dying/is_dying.yy",},},
{"id":{"name":"pause_movement","path":"scripts/pause_movement/pause_movement.yy",},},
{"id":{"name":"background_music","path":"sounds/background_music/background_music.yy",},},
{"id":{"name":"explosion","path":"sounds/explosion/explosion.yy",},},
{"id":{"name":"hurt_sound","path":"sounds/hurt_sound/hurt_sound.yy",},},
{"id":{"name":"item_pick","path":"sounds/item_pick/item_pick.yy",},},
{"id":{"name":"s_aimer","path":"sprites/s_aimer/s_aimer.yy",},},
{"id":{"name":"s_archer_attack","path":"sprites/s_archer_attack/s_archer_attack.yy",},},
{"id":{"name":"s_archer_death","path":"sprites/s_archer_death/s_archer_death.yy",},},
{"id":{"name":"s_archer_hurt","path":"sprites/s_archer_hurt/s_archer_hurt.yy",},},
{"id":{"name":"s_archer_idle","path":"sprites/s_archer_idle/s_archer_idle.yy",},},
{"id":{"name":"s_archer_walk","path":"sprites/s_archer_walk/s_archer_walk.yy",},},
{"id":{"name":"s_arrow_destroy","path":"sprites/s_arrow_destroy/s_arrow_destroy.yy",},},
{"id":{"name":"s_arrow","path":"sprites/s_arrow/s_arrow.yy",},},
{"id":{"name":"s_blocker_destroyed","path":"sprites/s_blocker_destroyed/s_blocker_destroyed.yy",},},
{"id":{"name":"s_blocker_stump","path":"sprites/s_blocker_stump/s_blocker_stump.yy",},},
{"id":{"name":"s_blocker","path":"sprites/s_blocker/s_blocker.yy",},},
{"id":{"name":"s_disc_destroy","path":"sprites/s_disc_destroy/s_disc_destroy.yy",},},
{"id":{"name":"s_disc","path":"sprites/s_disc/s_disc.yy",},},
{"id":{"name":"s_enemy_health","path":"sprites/s_enemy_health/s_enemy_health.yy",},},
{"id":{"name":"s_explosion","path":"sprites/s_explosion/s_explosion.yy",},},
{"id":{"name":"s_explosive","path":"sprites/s_explosive/s_explosive.yy",},},
{"id":{"name":"s_fireball_destroy","path":"sprites/s_fireball_destroy/s_fireball_destroy.yy",},},
{"id":{"name":"s_fireball","path":"sprites/s_fireball/s_fireball.yy",},},
{"id":{"name":"s_heal","path":"sprites/s_heal/s_heal.yy",},},
{"id":{"name":"s_icebolt_destroy","path":"sprites/s_icebolt_destroy/s_icebolt_destroy.yy",},},
{"id":{"name":"s_icebolt","path":"sprites/s_icebolt/s_icebolt.yy",},},
{"id":{"name":"s_key_back","path":"sprites/s_key_back/s_key_back.yy",},},
{"id":{"name":"s_key_enter","path":"sprites/s_key_enter/s_key_enter.yy",},},
{"id":{"name":"s_key_esc","path":"sprites/s_key_esc/s_key_esc.yy",},},
{"id":{"name":"s_key_q","path":"sprites/s_key_q/s_key_q.yy",},},
{"id":{"name":"s_key_space","path":"sprites/s_key_space/s_key_space.yy",},},
{"id":{"name":"s_key_wasd","path":"sprites/s_key_wasd/s_key_wasd.yy",},},
{"id":{"name":"s_kill_count_1","path":"sprites/s_kill_count_1/s_kill_count_1.yy",},},
{"id":{"name":"s_kill_count","path":"sprites/s_kill_count/s_kill_count.yy",},},
{"id":{"name":"s_mouse_left","path":"sprites/s_mouse_left/s_mouse_left.yy",},},
{"id":{"name":"s_mouse_right","path":"sprites/s_mouse_right/s_mouse_right.yy",},},
{"id":{"name":"s_new_spell","path":"sprites/s_new_spell/s_new_spell.yy",},},
{"id":{"name":"s_objects","path":"sprites/s_objects/s_objects.yy",},},
{"id":{"name":"s_player_attack","path":"sprites/s_player_attack/s_player_attack.yy",},},
{"id":{"name":"s_player_death","path":"sprites/s_player_death/s_player_death.yy",},},
{"id":{"name":"s_player_heal","path":"sprites/s_player_heal/s_player_heal.yy",},},
{"id":{"name":"s_player_health","path":"sprites/s_player_health/s_player_health.yy",},},
{"id":{"name":"s_player_hurt","path":"sprites/s_player_hurt/s_player_hurt.yy",},},
{"id":{"name":"s_player_idle","path":"sprites/s_player_idle/s_player_idle.yy",},},
{"id":{"name":"s_player_walk","path":"sprites/s_player_walk/s_player_walk.yy",},},
{"id":{"name":"s_poison_destroy","path":"sprites/s_poison_destroy/s_poison_destroy.yy",},},
{"id":{"name":"s_poison","path":"sprites/s_poison/s_poison.yy",},},
{"id":{"name":"s_potion","path":"sprites/s_potion/s_potion.yy",},},
{"id":{"name":"s_shards_destroy","path":"sprites/s_shards_destroy/s_shards_destroy.yy",},},
{"id":{"name":"s_shards","path":"sprites/s_shards/s_shards.yy",},},
{"id":{"name":"s_solid_wall","path":"sprites/s_solid_wall/s_solid_wall.yy",},},
{"id":{"name":"s_spawner","path":"sprites/s_spawner/s_spawner.yy",},},
{"id":{"name":"s_support_1","path":"sprites/s_support_1/s_support_1.yy",},},
{"id":{"name":"s_support_2","path":"sprites/s_support_2/s_support_2.yy",},},
{"id":{"name":"s_support_3","path":"sprites/s_support_3/s_support_3.yy",},},
{"id":{"name":"s_support_4","path":"sprites/s_support_4/s_support_4.yy",},},
{"id":{"name":"s_support_5","path":"sprites/s_support_5/s_support_5.yy",},},
{"id":{"name":"s_support_6","path":"sprites/s_support_6/s_support_6.yy",},},
{"id":{"name":"s_support_spells","path":"sprites/s_support_spells/s_support_spells.yy",},},
{"id":{"name":"s_terrain","path":"sprites/s_terrain/s_terrain.yy",},},
{"id":{"name":"s_wall","path":"sprites/s_wall/s_wall.yy",},},
{"id":{"name":"t_objects","path":"tilesets/t_objects/t_objects.yy",},},
{"id":{"name":"t_terrain","path":"tilesets/t_terrain/t_terrain.yy",},},
],
"resourceType":"GMProject",
"resourceVersion":"2.0",
"RoomOrderNodes":[
{"roomId":{"name":"r_initialize","path":"rooms/r_initialize/r_initialize.yy",},},
{"roomId":{"name":"r_main","path":"rooms/r_main/r_main.yy",},},
],
"templateType":"game",
"TextureGroups":[
{"$GMTextureGroup":"","%Name":"Default","autocrop":true,"border":2,"compressFormat":"bz2","customOptions":"","directory":"","groupParent":null,"isScaled":true,"loadType":"default","mipsToGenerate":0,"name":"Default","resourceType":"GMTextureGroup","resourceVersion":"2.0","targets":-1,},
],
}

2
README.md Normal file
View File

@@ -0,0 +1,2 @@
# BitBlaster

Binary file not shown.

BIN
datafiles/Tiny5-Regular.ttf Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

View File

@@ -0,0 +1,143 @@
{
"$GMFont":"",
"%Name":"fnt_Special_Elite",
"AntiAlias":1,
"applyKerning":0,
"ascender":20,
"ascenderOffset":3,
"bold":false,
"canGenerateBitmap":true,
"charset":0,
"first":0,
"fontName":"Special Elite",
"glyphOperations":0,
"glyphs":{
"32":{"character":32,"h":31,"offset":0,"shift":7,"w":7,"x":2,"y":2,},
"33":{"character":33,"h":31,"offset":1,"shift":7,"w":4,"x":231,"y":101,},
"34":{"character":34,"h":31,"offset":1,"shift":8,"w":7,"x":222,"y":101,},
"35":{"character":35,"h":31,"offset":0,"shift":13,"w":13,"x":207,"y":101,},
"36":{"character":36,"h":31,"offset":0,"shift":13,"w":12,"x":193,"y":101,},
"37":{"character":37,"h":31,"offset":0,"shift":16,"w":16,"x":175,"y":101,},
"38":{"character":38,"h":31,"offset":0,"shift":16,"w":16,"x":157,"y":101,},
"39":{"character":39,"h":31,"offset":1,"shift":5,"w":3,"x":152,"y":101,},
"40":{"character":40,"h":31,"offset":1,"shift":7,"w":5,"x":145,"y":101,},
"41":{"character":41,"h":31,"offset":0,"shift":7,"w":6,"x":137,"y":101,},
"42":{"character":42,"h":31,"offset":0,"shift":13,"w":12,"x":237,"y":101,},
"43":{"character":43,"h":31,"offset":0,"shift":12,"w":12,"x":123,"y":101,},
"44":{"character":44,"h":31,"offset":0,"shift":8,"w":7,"x":100,"y":101,},
"45":{"character":45,"h":31,"offset":1,"shift":15,"w":13,"x":85,"y":101,},
"46":{"character":46,"h":31,"offset":1,"shift":8,"w":7,"x":76,"y":101,},
"47":{"character":47,"h":31,"offset":0,"shift":13,"w":13,"x":61,"y":101,},
"48":{"character":48,"h":31,"offset":1,"shift":15,"w":13,"x":46,"y":101,},
"49":{"character":49,"h":31,"offset":0,"shift":14,"w":14,"x":30,"y":101,},
"50":{"character":50,"h":31,"offset":1,"shift":14,"w":12,"x":16,"y":101,},
"51":{"character":51,"h":31,"offset":1,"shift":13,"w":12,"x":2,"y":101,},
"52":{"character":52,"h":31,"offset":0,"shift":15,"w":14,"x":234,"y":68,},
"53":{"character":53,"h":31,"offset":1,"shift":13,"w":12,"x":109,"y":101,},
"54":{"character":54,"h":31,"offset":1,"shift":14,"w":13,"x":2,"y":134,},
"55":{"character":55,"h":31,"offset":0,"shift":13,"w":14,"x":17,"y":134,},
"56":{"character":56,"h":31,"offset":1,"shift":14,"w":13,"x":33,"y":134,},
"57":{"character":57,"h":31,"offset":1,"shift":14,"w":12,"x":105,"y":167,},
"58":{"character":58,"h":31,"offset":1,"shift":8,"w":7,"x":96,"y":167,},
"59":{"character":59,"h":31,"offset":1,"shift":8,"w":7,"x":87,"y":167,},
"60":{"character":60,"h":31,"offset":0,"shift":11,"w":10,"x":75,"y":167,},
"61":{"character":61,"h":31,"offset":1,"shift":15,"w":13,"x":60,"y":167,},
"62":{"character":62,"h":31,"offset":1,"shift":11,"w":10,"x":48,"y":167,},
"63":{"character":63,"h":31,"offset":0,"shift":11,"w":11,"x":35,"y":167,},
"64":{"character":64,"h":31,"offset":1,"shift":16,"w":14,"x":19,"y":167,},
"65":{"character":65,"h":31,"offset":-1,"shift":13,"w":15,"x":2,"y":167,},
"66":{"character":66,"h":31,"offset":0,"shift":15,"w":14,"x":224,"y":134,},
"67":{"character":67,"h":31,"offset":1,"shift":14,"w":12,"x":210,"y":134,},
"68":{"character":68,"h":31,"offset":0,"shift":15,"w":14,"x":194,"y":134,},
"69":{"character":69,"h":31,"offset":0,"shift":15,"w":15,"x":177,"y":134,},
"70":{"character":70,"h":31,"offset":0,"shift":15,"w":15,"x":160,"y":134,},
"71":{"character":71,"h":31,"offset":1,"shift":15,"w":14,"x":144,"y":134,},
"72":{"character":72,"h":31,"offset":0,"shift":16,"w":15,"x":127,"y":134,},
"73":{"character":73,"h":31,"offset":0,"shift":12,"w":12,"x":113,"y":134,},
"74":{"character":74,"h":31,"offset":0,"shift":13,"w":13,"x":98,"y":134,},
"75":{"character":75,"h":31,"offset":0,"shift":14,"w":15,"x":81,"y":134,},
"76":{"character":76,"h":31,"offset":0,"shift":14,"w":14,"x":65,"y":134,},
"77":{"character":77,"h":31,"offset":1,"shift":17,"w":15,"x":48,"y":134,},
"78":{"character":78,"h":31,"offset":0,"shift":15,"w":15,"x":217,"y":68,},
"79":{"character":79,"h":31,"offset":1,"shift":15,"w":13,"x":202,"y":68,},
"80":{"character":80,"h":31,"offset":0,"shift":13,"w":13,"x":187,"y":68,},
"81":{"character":81,"h":31,"offset":1,"shift":14,"w":13,"x":75,"y":35,},
"82":{"character":82,"h":31,"offset":0,"shift":15,"w":15,"x":50,"y":35,},
"83":{"character":83,"h":31,"offset":1,"shift":14,"w":13,"x":35,"y":35,},
"84":{"character":84,"h":31,"offset":0,"shift":14,"w":14,"x":19,"y":35,},
"85":{"character":85,"h":31,"offset":0,"shift":15,"w":15,"x":2,"y":35,},
"86":{"character":86,"h":31,"offset":-1,"shift":15,"w":16,"x":229,"y":2,},
"87":{"character":87,"h":31,"offset":0,"shift":15,"w":15,"x":212,"y":2,},
"88":{"character":88,"h":31,"offset":0,"shift":14,"w":14,"x":196,"y":2,},
"89":{"character":89,"h":31,"offset":-1,"shift":13,"w":15,"x":179,"y":2,},
"90":{"character":90,"h":31,"offset":1,"shift":14,"w":13,"x":164,"y":2,},
"91":{"character":91,"h":31,"offset":2,"shift":7,"w":6,"x":67,"y":35,},
"92":{"character":92,"h":31,"offset":0,"shift":13,"w":13,"x":149,"y":2,},
"93":{"character":93,"h":31,"offset":0,"shift":8,"w":6,"x":125,"y":2,},
"94":{"character":94,"h":31,"offset":0,"shift":10,"w":10,"x":113,"y":2,},
"95":{"character":95,"h":31,"offset":3,"shift":16,"w":13,"x":98,"y":2,},
"96":{"character":96,"h":31,"offset":0,"shift":5,"w":6,"x":90,"y":2,},
"97":{"character":97,"h":31,"offset":0,"shift":14,"w":14,"x":74,"y":2,},
"98":{"character":98,"h":31,"offset":-1,"shift":14,"w":14,"x":58,"y":2,},
"99":{"character":99,"h":31,"offset":0,"shift":13,"w":13,"x":43,"y":2,},
"100":{"character":100,"h":31,"offset":0,"shift":14,"w":15,"x":26,"y":2,},
"101":{"character":101,"h":31,"offset":0,"shift":13,"w":13,"x":11,"y":2,},
"102":{"character":102,"h":31,"offset":0,"shift":11,"w":14,"x":133,"y":2,},
"103":{"character":103,"h":31,"offset":1,"shift":14,"w":13,"x":90,"y":35,},
"104":{"character":104,"h":31,"offset":0,"shift":15,"w":15,"x":2,"y":68,},
"105":{"character":105,"h":31,"offset":0,"shift":14,"w":14,"x":105,"y":35,},
"106":{"character":106,"h":31,"offset":-1,"shift":10,"w":10,"x":162,"y":68,},
"107":{"character":107,"h":31,"offset":0,"shift":15,"w":15,"x":145,"y":68,},
"108":{"character":108,"h":31,"offset":0,"shift":13,"w":13,"x":130,"y":68,},
"109":{"character":109,"h":31,"offset":1,"shift":16,"w":15,"x":113,"y":68,},
"110":{"character":110,"h":31,"offset":0,"shift":15,"w":15,"x":96,"y":68,},
"111":{"character":111,"h":31,"offset":0,"shift":14,"w":14,"x":80,"y":68,},
"112":{"character":112,"h":31,"offset":0,"shift":14,"w":14,"x":64,"y":68,},
"113":{"character":113,"h":31,"offset":1,"shift":14,"w":13,"x":49,"y":68,},
"114":{"character":114,"h":31,"offset":0,"shift":14,"w":14,"x":33,"y":68,},
"115":{"character":115,"h":31,"offset":1,"shift":12,"w":11,"x":174,"y":68,},
"116":{"character":116,"h":31,"offset":0,"shift":12,"w":12,"x":19,"y":68,},
"117":{"character":117,"h":31,"offset":0,"shift":15,"w":15,"x":225,"y":35,},
"118":{"character":118,"h":31,"offset":0,"shift":15,"w":15,"x":208,"y":35,},
"119":{"character":119,"h":31,"offset":0,"shift":16,"w":17,"x":189,"y":35,},
"120":{"character":120,"h":31,"offset":0,"shift":16,"w":16,"x":171,"y":35,},
"121":{"character":121,"h":31,"offset":0,"shift":14,"w":15,"x":154,"y":35,},
"122":{"character":122,"h":31,"offset":1,"shift":13,"w":11,"x":141,"y":35,},
"123":{"character":123,"h":31,"offset":0,"shift":7,"w":6,"x":133,"y":35,},
"124":{"character":124,"h":31,"offset":2,"shift":6,"w":3,"x":128,"y":35,},
"125":{"character":125,"h":31,"offset":1,"shift":7,"w":5,"x":121,"y":35,},
"126":{"character":126,"h":31,"offset":1,"shift":13,"w":12,"x":119,"y":167,},
"9647":{"character":9647,"h":31,"offset":4,"shift":23,"w":15,"x":133,"y":167,},
},
"hinting":0,
"includeTTF":true,
"interpreter":0,
"italic":false,
"kerningPairs":[],
"last":0,
"lineHeight":28,
"maintainGms1Font":false,
"name":"fnt_Special_Elite",
"parent":{
"name":"Bit Blaster",
"path":"Bit Blaster.yyp",
},
"pointRounding":0,
"ranges":[
{"lower":32,"upper":127,},
{"lower":9647,"upper":9647,},
],
"regenerateBitmap":false,
"resourceType":"GMFont",
"resourceVersion":"2.0",
"sampleText":"abcdef ABCDEF\n0123456789 .,<>\"'&!?\nthe quick brown fox jumps over the lazy dog\nTHE QUICK BROWN FOX JUMPS OVER THE LAZY DOG\nDefault character: ▯ (9647)",
"sdfSpread":8,
"size":18.0,
"styleName":"Regular",
"textureGroupId":{
"name":"Default",
"path":"texturegroups/Default",
},
"TTFName":"C:\\Users\\andre\\GameMakerProjects\\Bit Blaster\\fonts\\Font1\\SpecialElite-Regular.ttf",
"usesSDF":false,
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.0 KiB

View File

@@ -0,0 +1,140 @@
{
"$GMFont":"",
"%Name":"fnt_Special_Elite",
"AntiAlias":0,
"applyKerning":0,
"ascender":19,
"ascenderOffset":3,
"bold":false,
"canGenerateBitmap":true,
"charset":0,
"first":0,
"fontName":"Special Elite",
"glyphOperations":0,
"glyphs":{
"32":{"character":32,"h":30,"offset":0,"shift":7,"w":7,"x":2,"y":2,},
"33":{"character":33,"h":30,"offset":2,"shift":7,"w":3,"x":169,"y":98,},
"34":{"character":34,"h":30,"offset":1,"shift":8,"w":6,"x":161,"y":98,},
"35":{"character":35,"h":30,"offset":1,"shift":13,"w":12,"x":147,"y":98,},
"36":{"character":36,"h":30,"offset":1,"shift":13,"w":11,"x":134,"y":98,},
"37":{"character":37,"h":30,"offset":1,"shift":16,"w":14,"x":118,"y":98,},
"38":{"character":38,"h":30,"offset":1,"shift":16,"w":14,"x":102,"y":98,},
"39":{"character":39,"h":30,"offset":1,"shift":5,"w":2,"x":98,"y":98,},
"40":{"character":40,"h":30,"offset":1,"shift":7,"w":5,"x":91,"y":98,},
"41":{"character":41,"h":30,"offset":1,"shift":7,"w":4,"x":85,"y":98,},
"42":{"character":42,"h":30,"offset":1,"shift":13,"w":11,"x":174,"y":98,},
"43":{"character":43,"h":30,"offset":1,"shift":12,"w":10,"x":73,"y":98,},
"44":{"character":44,"h":30,"offset":1,"shift":8,"w":6,"x":52,"y":98,},
"45":{"character":45,"h":30,"offset":2,"shift":15,"w":12,"x":38,"y":98,},
"46":{"character":46,"h":30,"offset":1,"shift":8,"w":6,"x":30,"y":98,},
"47":{"character":47,"h":30,"offset":1,"shift":13,"w":12,"x":16,"y":98,},
"48":{"character":48,"h":30,"offset":1,"shift":15,"w":12,"x":2,"y":98,},
"49":{"character":49,"h":30,"offset":1,"shift":14,"w":13,"x":234,"y":66,},
"50":{"character":50,"h":30,"offset":1,"shift":14,"w":12,"x":220,"y":66,},
"51":{"character":51,"h":30,"offset":1,"shift":13,"w":11,"x":207,"y":66,},
"52":{"character":52,"h":30,"offset":0,"shift":15,"w":14,"x":191,"y":66,},
"53":{"character":53,"h":30,"offset":1,"shift":13,"w":11,"x":60,"y":98,},
"54":{"character":54,"h":30,"offset":1,"shift":14,"w":12,"x":187,"y":98,},
"55":{"character":55,"h":30,"offset":0,"shift":13,"w":13,"x":201,"y":98,},
"56":{"character":56,"h":30,"offset":1,"shift":14,"w":12,"x":216,"y":98,},
"57":{"character":57,"h":30,"offset":1,"shift":14,"w":12,"x":10,"y":162,},
"58":{"character":58,"h":30,"offset":1,"shift":8,"w":6,"x":2,"y":162,},
"59":{"character":59,"h":30,"offset":1,"shift":8,"w":6,"x":242,"y":130,},
"60":{"character":60,"h":30,"offset":1,"shift":11,"w":9,"x":231,"y":130,},
"61":{"character":61,"h":30,"offset":2,"shift":15,"w":12,"x":217,"y":130,},
"62":{"character":62,"h":30,"offset":1,"shift":11,"w":9,"x":206,"y":130,},
"63":{"character":63,"h":30,"offset":1,"shift":11,"w":10,"x":194,"y":130,},
"64":{"character":64,"h":30,"offset":1,"shift":16,"w":14,"x":178,"y":130,},
"65":{"character":65,"h":30,"offset":0,"shift":13,"w":13,"x":163,"y":130,},
"66":{"character":66,"h":30,"offset":1,"shift":15,"w":12,"x":149,"y":130,},
"67":{"character":67,"h":30,"offset":1,"shift":14,"w":12,"x":135,"y":130,},
"68":{"character":68,"h":30,"offset":1,"shift":15,"w":13,"x":120,"y":130,},
"69":{"character":69,"h":30,"offset":1,"shift":15,"w":13,"x":105,"y":130,},
"70":{"character":70,"h":30,"offset":1,"shift":15,"w":13,"x":90,"y":130,},
"71":{"character":71,"h":30,"offset":1,"shift":15,"w":13,"x":75,"y":130,},
"72":{"character":72,"h":30,"offset":1,"shift":16,"w":14,"x":59,"y":130,},
"73":{"character":73,"h":30,"offset":1,"shift":12,"w":10,"x":47,"y":130,},
"74":{"character":74,"h":30,"offset":0,"shift":13,"w":13,"x":32,"y":130,},
"75":{"character":75,"h":30,"offset":1,"shift":14,"w":13,"x":17,"y":130,},
"76":{"character":76,"h":30,"offset":1,"shift":14,"w":13,"x":2,"y":130,},
"77":{"character":77,"h":30,"offset":1,"shift":17,"w":15,"x":230,"y":98,},
"78":{"character":78,"h":30,"offset":1,"shift":15,"w":13,"x":176,"y":66,},
"79":{"character":79,"h":30,"offset":1,"shift":15,"w":13,"x":161,"y":66,},
"80":{"character":80,"h":30,"offset":1,"shift":13,"w":12,"x":147,"y":66,},
"81":{"character":81,"h":30,"offset":1,"shift":14,"w":13,"x":55,"y":34,},
"82":{"character":82,"h":30,"offset":0,"shift":15,"w":15,"x":31,"y":34,},
"83":{"character":83,"h":30,"offset":1,"shift":14,"w":12,"x":17,"y":34,},
"84":{"character":84,"h":30,"offset":1,"shift":14,"w":13,"x":2,"y":34,},
"85":{"character":85,"h":30,"offset":1,"shift":15,"w":14,"x":231,"y":2,},
"86":{"character":86,"h":30,"offset":0,"shift":15,"w":15,"x":214,"y":2,},
"87":{"character":87,"h":30,"offset":0,"shift":15,"w":15,"x":197,"y":2,},
"88":{"character":88,"h":30,"offset":0,"shift":14,"w":14,"x":181,"y":2,},
"89":{"character":89,"h":30,"offset":0,"shift":13,"w":14,"x":165,"y":2,},
"90":{"character":90,"h":30,"offset":1,"shift":14,"w":12,"x":151,"y":2,},
"91":{"character":91,"h":30,"offset":2,"shift":7,"w":5,"x":48,"y":34,},
"92":{"character":92,"h":30,"offset":1,"shift":13,"w":12,"x":137,"y":2,},
"93":{"character":93,"h":30,"offset":0,"shift":8,"w":5,"x":115,"y":2,},
"94":{"character":94,"h":30,"offset":0,"shift":10,"w":10,"x":103,"y":2,},
"95":{"character":95,"h":30,"offset":3,"shift":16,"w":12,"x":89,"y":2,},
"96":{"character":96,"h":30,"offset":0,"shift":5,"w":5,"x":82,"y":2,},
"97":{"character":97,"h":30,"offset":1,"shift":14,"w":12,"x":68,"y":2,},
"98":{"character":98,"h":30,"offset":-1,"shift":14,"w":14,"x":52,"y":2,},
"99":{"character":99,"h":30,"offset":1,"shift":13,"w":11,"x":39,"y":2,},
"100":{"character":100,"h":30,"offset":1,"shift":14,"w":13,"x":24,"y":2,},
"101":{"character":101,"h":30,"offset":1,"shift":13,"w":11,"x":11,"y":2,},
"102":{"character":102,"h":30,"offset":0,"shift":11,"w":13,"x":122,"y":2,},
"103":{"character":103,"h":30,"offset":1,"shift":14,"w":12,"x":70,"y":34,},
"104":{"character":104,"h":30,"offset":0,"shift":15,"w":14,"x":215,"y":34,},
"105":{"character":105,"h":30,"offset":1,"shift":14,"w":13,"x":84,"y":34,},
"106":{"character":106,"h":30,"offset":0,"shift":10,"w":8,"x":124,"y":66,},
"107":{"character":107,"h":30,"offset":0,"shift":15,"w":14,"x":108,"y":66,},
"108":{"character":108,"h":30,"offset":0,"shift":13,"w":13,"x":93,"y":66,},
"109":{"character":109,"h":30,"offset":1,"shift":16,"w":14,"x":77,"y":66,},
"110":{"character":110,"h":30,"offset":1,"shift":15,"w":14,"x":61,"y":66,},
"111":{"character":111,"h":30,"offset":1,"shift":14,"w":12,"x":47,"y":66,},
"112":{"character":112,"h":30,"offset":0,"shift":14,"w":13,"x":32,"y":66,},
"113":{"character":113,"h":30,"offset":1,"shift":14,"w":13,"x":17,"y":66,},
"114":{"character":114,"h":30,"offset":1,"shift":14,"w":13,"x":2,"y":66,},
"115":{"character":115,"h":30,"offset":1,"shift":12,"w":11,"x":134,"y":66,},
"116":{"character":116,"h":30,"offset":0,"shift":12,"w":12,"x":231,"y":34,},
"117":{"character":117,"h":30,"offset":0,"shift":15,"w":15,"x":198,"y":34,},
"118":{"character":118,"h":30,"offset":0,"shift":15,"w":15,"x":181,"y":34,},
"119":{"character":119,"h":30,"offset":0,"shift":16,"w":16,"x":163,"y":34,},
"120":{"character":120,"h":30,"offset":0,"shift":16,"w":15,"x":146,"y":34,},
"121":{"character":121,"h":30,"offset":0,"shift":14,"w":14,"x":130,"y":34,},
"122":{"character":122,"h":30,"offset":1,"shift":13,"w":11,"x":117,"y":34,},
"123":{"character":123,"h":30,"offset":1,"shift":7,"w":5,"x":110,"y":34,},
"124":{"character":124,"h":30,"offset":2,"shift":6,"w":2,"x":106,"y":34,},
"125":{"character":125,"h":30,"offset":1,"shift":7,"w":5,"x":99,"y":34,},
"126":{"character":126,"h":30,"offset":1,"shift":13,"w":11,"x":24,"y":162,},
"9647":{"character":9647,"h":30,"offset":5,"shift":23,"w":13,"x":37,"y":162,},
},
"hinting":0,
"includeTTF":true,
"interpreter":0,
"italic":false,
"kerningPairs":[],
"last":0,
"lineHeight":27,
"maintainGms1Font":false,
"name":"fnt_Special_Elite",
"parent":{
"name":"Fonts",
"path":"folders/Fonts.yy",
},
"pointRounding":0,
"ranges":[
{"lower":32,"upper":127,},
{"lower":9647,"upper":9647,},
],
"regenerateBitmap":false,
"resourceType":"GMFont",
"resourceVersion":"2.0",
"sampleText":"abcdef ABCDEF\n0123456789 .,<>\"'&!?\nthe quick brown fox jumps over the lazy dog\nTHE QUICK BROWN FOX JUMPS OVER THE LAZY DOG\nDefault character: ▯ (9647)",
"sdfSpread":8,
"size":18.0,
"styleName":"Regular",
"textureGroupId":null,
"TTFName":"C:\\Users\\andre\\GameMakerProjects\\Bit Blaster\\fonts\\Font1\\SpecialElite-Regular.ttf",
"usesSDF":false,
}

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

143
fonts/fnt_Tiny5/fnt_Tiny5.old.yy generated Normal file
View File

@@ -0,0 +1,143 @@
{
"$GMFont":"",
"%Name":"fnt_Tiny5",
"AntiAlias":0,
"applyKerning":0,
"ascender":18,
"ascenderOffset":0,
"bold":false,
"canGenerateBitmap":true,
"charset":0,
"first":0,
"fontName":"Tiny5",
"glyphOperations":0,
"glyphs":{
"32":{"character":32,"h":24,"offset":0,"shift":5,"w":5,"x":2,"y":2,},
"33":{"character":33,"h":24,"offset":0,"shift":5,"w":3,"x":168,"y":54,},
"34":{"character":34,"h":24,"offset":0,"shift":11,"w":8,"x":158,"y":54,},
"35":{"character":35,"h":24,"offset":0,"shift":16,"w":13,"x":143,"y":54,},
"36":{"character":36,"h":24,"offset":0,"shift":11,"w":8,"x":133,"y":54,},
"37":{"character":37,"h":24,"offset":0,"shift":13,"w":11,"x":120,"y":54,},
"38":{"character":38,"h":24,"offset":0,"shift":13,"w":11,"x":107,"y":54,},
"39":{"character":39,"h":24,"offset":0,"shift":5,"w":3,"x":102,"y":54,},
"40":{"character":40,"h":24,"offset":0,"shift":8,"w":5,"x":95,"y":54,},
"41":{"character":41,"h":24,"offset":0,"shift":8,"w":5,"x":88,"y":54,},
"42":{"character":42,"h":24,"offset":0,"shift":11,"w":8,"x":173,"y":54,},
"43":{"character":43,"h":24,"offset":0,"shift":11,"w":8,"x":78,"y":54,},
"44":{"character":44,"h":24,"offset":0,"shift":8,"w":5,"x":61,"y":54,},
"45":{"character":45,"h":24,"offset":0,"shift":11,"w":8,"x":51,"y":54,},
"46":{"character":46,"h":24,"offset":0,"shift":5,"w":3,"x":46,"y":54,},
"47":{"character":47,"h":24,"offset":0,"shift":8,"w":5,"x":39,"y":54,},
"48":{"character":48,"h":24,"offset":0,"shift":11,"w":8,"x":29,"y":54,},
"49":{"character":49,"h":24,"offset":0,"shift":11,"w":5,"x":22,"y":54,},
"50":{"character":50,"h":24,"offset":0,"shift":11,"w":8,"x":12,"y":54,},
"51":{"character":51,"h":24,"offset":0,"shift":11,"w":8,"x":2,"y":54,},
"52":{"character":52,"h":24,"offset":0,"shift":11,"w":8,"x":240,"y":28,},
"53":{"character":53,"h":24,"offset":0,"shift":11,"w":8,"x":68,"y":54,},
"54":{"character":54,"h":24,"offset":0,"shift":11,"w":8,"x":183,"y":54,},
"55":{"character":55,"h":24,"offset":0,"shift":11,"w":8,"x":193,"y":54,},
"56":{"character":56,"h":24,"offset":0,"shift":11,"w":8,"x":203,"y":54,},
"57":{"character":57,"h":24,"offset":0,"shift":11,"w":8,"x":186,"y":80,},
"58":{"character":58,"h":24,"offset":0,"shift":5,"w":3,"x":181,"y":80,},
"59":{"character":59,"h":24,"offset":0,"shift":8,"w":5,"x":174,"y":80,},
"60":{"character":60,"h":24,"offset":0,"shift":11,"w":8,"x":164,"y":80,},
"61":{"character":61,"h":24,"offset":0,"shift":11,"w":8,"x":154,"y":80,},
"62":{"character":62,"h":24,"offset":0,"shift":11,"w":8,"x":144,"y":80,},
"63":{"character":63,"h":24,"offset":0,"shift":11,"w":8,"x":134,"y":80,},
"64":{"character":64,"h":24,"offset":0,"shift":13,"w":11,"x":121,"y":80,},
"65":{"character":65,"h":24,"offset":0,"shift":13,"w":11,"x":108,"y":80,},
"66":{"character":66,"h":24,"offset":0,"shift":13,"w":11,"x":95,"y":80,},
"67":{"character":67,"h":24,"offset":0,"shift":13,"w":11,"x":82,"y":80,},
"68":{"character":68,"h":24,"offset":0,"shift":13,"w":11,"x":69,"y":80,},
"69":{"character":69,"h":24,"offset":0,"shift":13,"w":11,"x":56,"y":80,},
"70":{"character":70,"h":24,"offset":0,"shift":13,"w":11,"x":43,"y":80,},
"71":{"character":71,"h":24,"offset":0,"shift":13,"w":11,"x":30,"y":80,},
"72":{"character":72,"h":24,"offset":0,"shift":13,"w":11,"x":17,"y":80,},
"73":{"character":73,"h":24,"offset":0,"shift":5,"w":3,"x":12,"y":80,},
"74":{"character":74,"h":24,"offset":0,"shift":11,"w":8,"x":2,"y":80,},
"75":{"character":75,"h":24,"offset":0,"shift":13,"w":11,"x":238,"y":54,},
"76":{"character":76,"h":24,"offset":0,"shift":11,"w":8,"x":228,"y":54,},
"77":{"character":77,"h":24,"offset":0,"shift":16,"w":13,"x":213,"y":54,},
"78":{"character":78,"h":24,"offset":0,"shift":13,"w":11,"x":227,"y":28,},
"79":{"character":79,"h":24,"offset":0,"shift":13,"w":11,"x":214,"y":28,},
"80":{"character":80,"h":24,"offset":0,"shift":13,"w":11,"x":201,"y":28,},
"81":{"character":81,"h":24,"offset":0,"shift":13,"w":11,"x":218,"y":2,},
"82":{"character":82,"h":24,"offset":0,"shift":13,"w":11,"x":198,"y":2,},
"83":{"character":83,"h":24,"offset":0,"shift":13,"w":11,"x":185,"y":2,},
"84":{"character":84,"h":24,"offset":0,"shift":11,"w":8,"x":175,"y":2,},
"85":{"character":85,"h":24,"offset":0,"shift":13,"w":11,"x":162,"y":2,},
"86":{"character":86,"h":24,"offset":0,"shift":11,"w":8,"x":152,"y":2,},
"87":{"character":87,"h":24,"offset":0,"shift":16,"w":13,"x":137,"y":2,},
"88":{"character":88,"h":24,"offset":0,"shift":11,"w":8,"x":127,"y":2,},
"89":{"character":89,"h":24,"offset":0,"shift":11,"w":8,"x":117,"y":2,},
"90":{"character":90,"h":24,"offset":0,"shift":11,"w":8,"x":107,"y":2,},
"91":{"character":91,"h":24,"offset":0,"shift":8,"w":5,"x":211,"y":2,},
"92":{"character":92,"h":24,"offset":0,"shift":8,"w":5,"x":100,"y":2,},
"93":{"character":93,"h":24,"offset":0,"shift":8,"w":5,"x":86,"y":2,},
"94":{"character":94,"h":24,"offset":0,"shift":11,"w":8,"x":76,"y":2,},
"95":{"character":95,"h":24,"offset":0,"shift":11,"w":8,"x":66,"y":2,},
"96":{"character":96,"h":24,"offset":0,"shift":8,"w":5,"x":59,"y":2,},
"97":{"character":97,"h":24,"offset":0,"shift":11,"w":8,"x":49,"y":2,},
"98":{"character":98,"h":24,"offset":0,"shift":11,"w":8,"x":39,"y":2,},
"99":{"character":99,"h":24,"offset":0,"shift":11,"w":8,"x":29,"y":2,},
"100":{"character":100,"h":24,"offset":0,"shift":11,"w":8,"x":19,"y":2,},
"101":{"character":101,"h":24,"offset":0,"shift":11,"w":8,"x":9,"y":2,},
"102":{"character":102,"h":24,"offset":0,"shift":8,"w":5,"x":93,"y":2,},
"103":{"character":103,"h":24,"offset":0,"shift":11,"w":8,"x":231,"y":2,},
"104":{"character":104,"h":24,"offset":0,"shift":11,"w":8,"x":92,"y":28,},
"105":{"character":105,"h":24,"offset":0,"shift":5,"w":3,"x":241,"y":2,},
"106":{"character":106,"h":24,"offset":0,"shift":5,"w":3,"x":186,"y":28,},
"107":{"character":107,"h":24,"offset":0,"shift":11,"w":8,"x":176,"y":28,},
"108":{"character":108,"h":24,"offset":0,"shift":5,"w":3,"x":171,"y":28,},
"109":{"character":109,"h":24,"offset":0,"shift":16,"w":13,"x":156,"y":28,},
"110":{"character":110,"h":24,"offset":0,"shift":11,"w":8,"x":146,"y":28,},
"111":{"character":111,"h":24,"offset":0,"shift":11,"w":8,"x":136,"y":28,},
"112":{"character":112,"h":24,"offset":0,"shift":11,"w":8,"x":126,"y":28,},
"113":{"character":113,"h":24,"offset":0,"shift":11,"w":8,"x":116,"y":28,},
"114":{"character":114,"h":24,"offset":0,"shift":8,"w":5,"x":109,"y":28,},
"115":{"character":115,"h":24,"offset":0,"shift":11,"w":8,"x":191,"y":28,},
"116":{"character":116,"h":24,"offset":0,"shift":8,"w":5,"x":102,"y":28,},
"117":{"character":117,"h":24,"offset":0,"shift":11,"w":8,"x":82,"y":28,},
"118":{"character":118,"h":24,"offset":0,"shift":11,"w":8,"x":72,"y":28,},
"119":{"character":119,"h":24,"offset":0,"shift":16,"w":13,"x":57,"y":28,},
"120":{"character":120,"h":24,"offset":0,"shift":11,"w":8,"x":47,"y":28,},
"121":{"character":121,"h":24,"offset":0,"shift":11,"w":8,"x":37,"y":28,},
"122":{"character":122,"h":24,"offset":0,"shift":11,"w":8,"x":27,"y":28,},
"123":{"character":123,"h":24,"offset":0,"shift":11,"w":8,"x":17,"y":28,},
"124":{"character":124,"h":24,"offset":0,"shift":5,"w":3,"x":12,"y":28,},
"125":{"character":125,"h":24,"offset":0,"shift":11,"w":8,"x":2,"y":28,},
"126":{"character":126,"h":24,"offset":0,"shift":8,"w":5,"x":196,"y":80,},
"9647":{"character":9647,"h":24,"offset":4,"shift":20,"w":12,"x":203,"y":80,},
},
"hinting":0,
"includeTTF":true,
"interpreter":0,
"italic":false,
"kerningPairs":[],
"last":0,
"lineHeight":24,
"maintainGms1Font":false,
"name":"fnt_Tiny5",
"parent":{
"name":"Bit Blaster",
"path":"Bit Blaster.yyp",
},
"pointRounding":0,
"ranges":[
{"lower":32,"upper":127,},
{"lower":9647,"upper":9647,},
],
"regenerateBitmap":false,
"resourceType":"GMFont",
"resourceVersion":"2.0",
"sampleText":"abcdef ABCDEF\n0123456789 .,<>\"'&!?\nthe quick brown fox jumps over the lazy dog\nTHE QUICK BROWN FOX JUMPS OVER THE LAZY DOG\nDefault character: ▯ (9647)",
"sdfSpread":8,
"size":16.0,
"styleName":"Regular",
"textureGroupId":{
"name":"Default",
"path":"texturegroups/Default",
},
"TTFName":"C:\\Users\\andre\\GameMakerProjects\\Bit Blaster\\fonts\\fnt_Tiny5\\Tiny5-Regular.ttf",
"usesSDF":false,
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

140
fonts/fnt_Tiny5/fnt_Tiny5.yy generated Normal file
View File

@@ -0,0 +1,140 @@
{
"$GMFont":"",
"%Name":"fnt_Tiny5",
"AntiAlias":0,
"applyKerning":0,
"ascender":23,
"ascenderOffset":0,
"bold":false,
"canGenerateBitmap":true,
"charset":0,
"first":0,
"fontName":"Tiny5",
"glyphOperations":0,
"glyphs":{
"32":{"character":32,"h":30,"offset":0,"shift":7,"w":7,"x":2,"y":2,},
"33":{"character":33,"h":30,"offset":0,"shift":7,"w":3,"x":77,"y":98,},
"34":{"character":34,"h":30,"offset":0,"shift":14,"w":10,"x":65,"y":98,},
"35":{"character":35,"h":30,"offset":0,"shift":20,"w":17,"x":46,"y":98,},
"36":{"character":36,"h":30,"offset":0,"shift":14,"w":10,"x":34,"y":98,},
"37":{"character":37,"h":30,"offset":0,"shift":17,"w":14,"x":18,"y":98,},
"38":{"character":38,"h":30,"offset":0,"shift":17,"w":14,"x":2,"y":98,},
"39":{"character":39,"h":30,"offset":0,"shift":7,"w":3,"x":237,"y":66,},
"40":{"character":40,"h":30,"offset":0,"shift":10,"w":7,"x":228,"y":66,},
"41":{"character":41,"h":30,"offset":0,"shift":10,"w":7,"x":219,"y":66,},
"42":{"character":42,"h":30,"offset":0,"shift":14,"w":10,"x":82,"y":98,},
"43":{"character":43,"h":30,"offset":0,"shift":14,"w":10,"x":207,"y":66,},
"44":{"character":44,"h":30,"offset":0,"shift":10,"w":7,"x":186,"y":66,},
"45":{"character":45,"h":30,"offset":0,"shift":14,"w":10,"x":174,"y":66,},
"46":{"character":46,"h":30,"offset":0,"shift":7,"w":3,"x":169,"y":66,},
"47":{"character":47,"h":30,"offset":0,"shift":10,"w":7,"x":160,"y":66,},
"48":{"character":48,"h":30,"offset":0,"shift":14,"w":10,"x":148,"y":66,},
"49":{"character":49,"h":30,"offset":0,"shift":14,"w":7,"x":139,"y":66,},
"50":{"character":50,"h":30,"offset":0,"shift":14,"w":10,"x":127,"y":66,},
"51":{"character":51,"h":30,"offset":0,"shift":14,"w":10,"x":115,"y":66,},
"52":{"character":52,"h":30,"offset":0,"shift":14,"w":10,"x":103,"y":66,},
"53":{"character":53,"h":30,"offset":0,"shift":14,"w":10,"x":195,"y":66,},
"54":{"character":54,"h":30,"offset":0,"shift":14,"w":10,"x":94,"y":98,},
"55":{"character":55,"h":30,"offset":0,"shift":14,"w":10,"x":106,"y":98,},
"56":{"character":56,"h":30,"offset":0,"shift":14,"w":10,"x":118,"y":98,},
"57":{"character":57,"h":30,"offset":0,"shift":14,"w":10,"x":160,"y":130,},
"58":{"character":58,"h":30,"offset":0,"shift":7,"w":3,"x":155,"y":130,},
"59":{"character":59,"h":30,"offset":0,"shift":10,"w":7,"x":146,"y":130,},
"60":{"character":60,"h":30,"offset":0,"shift":14,"w":10,"x":134,"y":130,},
"61":{"character":61,"h":30,"offset":0,"shift":14,"w":10,"x":122,"y":130,},
"62":{"character":62,"h":30,"offset":0,"shift":14,"w":10,"x":110,"y":130,},
"63":{"character":63,"h":30,"offset":0,"shift":14,"w":10,"x":98,"y":130,},
"64":{"character":64,"h":30,"offset":0,"shift":17,"w":14,"x":82,"y":130,},
"65":{"character":65,"h":30,"offset":0,"shift":17,"w":14,"x":66,"y":130,},
"66":{"character":66,"h":30,"offset":0,"shift":17,"w":14,"x":50,"y":130,},
"67":{"character":67,"h":30,"offset":0,"shift":17,"w":14,"x":34,"y":130,},
"68":{"character":68,"h":30,"offset":0,"shift":17,"w":14,"x":18,"y":130,},
"69":{"character":69,"h":30,"offset":0,"shift":17,"w":14,"x":2,"y":130,},
"70":{"character":70,"h":30,"offset":0,"shift":17,"w":14,"x":226,"y":98,},
"71":{"character":71,"h":30,"offset":0,"shift":17,"w":14,"x":210,"y":98,},
"72":{"character":72,"h":30,"offset":0,"shift":17,"w":14,"x":194,"y":98,},
"73":{"character":73,"h":30,"offset":0,"shift":7,"w":3,"x":189,"y":98,},
"74":{"character":74,"h":30,"offset":0,"shift":14,"w":10,"x":177,"y":98,},
"75":{"character":75,"h":30,"offset":0,"shift":17,"w":14,"x":161,"y":98,},
"76":{"character":76,"h":30,"offset":0,"shift":14,"w":10,"x":149,"y":98,},
"77":{"character":77,"h":30,"offset":0,"shift":20,"w":17,"x":130,"y":98,},
"78":{"character":78,"h":30,"offset":0,"shift":17,"w":14,"x":87,"y":66,},
"79":{"character":79,"h":30,"offset":0,"shift":17,"w":14,"x":71,"y":66,},
"80":{"character":80,"h":30,"offset":0,"shift":17,"w":14,"x":55,"y":66,},
"81":{"character":81,"h":30,"offset":0,"shift":17,"w":14,"x":27,"y":34,},
"82":{"character":82,"h":30,"offset":0,"shift":17,"w":14,"x":2,"y":34,},
"83":{"character":83,"h":30,"offset":0,"shift":17,"w":14,"x":226,"y":2,},
"84":{"character":84,"h":30,"offset":0,"shift":14,"w":10,"x":214,"y":2,},
"85":{"character":85,"h":30,"offset":0,"shift":17,"w":14,"x":198,"y":2,},
"86":{"character":86,"h":30,"offset":0,"shift":14,"w":10,"x":186,"y":2,},
"87":{"character":87,"h":30,"offset":0,"shift":20,"w":17,"x":167,"y":2,},
"88":{"character":88,"h":30,"offset":0,"shift":14,"w":10,"x":155,"y":2,},
"89":{"character":89,"h":30,"offset":0,"shift":14,"w":10,"x":143,"y":2,},
"90":{"character":90,"h":30,"offset":0,"shift":14,"w":10,"x":131,"y":2,},
"91":{"character":91,"h":30,"offset":0,"shift":10,"w":7,"x":18,"y":34,},
"92":{"character":92,"h":30,"offset":0,"shift":10,"w":7,"x":122,"y":2,},
"93":{"character":93,"h":30,"offset":0,"shift":10,"w":7,"x":104,"y":2,},
"94":{"character":94,"h":30,"offset":0,"shift":14,"w":10,"x":92,"y":2,},
"95":{"character":95,"h":30,"offset":0,"shift":14,"w":10,"x":80,"y":2,},
"96":{"character":96,"h":30,"offset":0,"shift":10,"w":7,"x":71,"y":2,},
"97":{"character":97,"h":30,"offset":0,"shift":14,"w":10,"x":59,"y":2,},
"98":{"character":98,"h":30,"offset":0,"shift":14,"w":10,"x":47,"y":2,},
"99":{"character":99,"h":30,"offset":0,"shift":14,"w":10,"x":35,"y":2,},
"100":{"character":100,"h":30,"offset":0,"shift":14,"w":10,"x":23,"y":2,},
"101":{"character":101,"h":30,"offset":0,"shift":14,"w":10,"x":11,"y":2,},
"102":{"character":102,"h":30,"offset":0,"shift":10,"w":7,"x":113,"y":2,},
"103":{"character":103,"h":30,"offset":0,"shift":14,"w":10,"x":43,"y":34,},
"104":{"character":104,"h":30,"offset":0,"shift":14,"w":10,"x":168,"y":34,},
"105":{"character":105,"h":30,"offset":0,"shift":7,"w":3,"x":55,"y":34,},
"106":{"character":106,"h":30,"offset":0,"shift":7,"w":3,"x":38,"y":66,},
"107":{"character":107,"h":30,"offset":0,"shift":14,"w":10,"x":26,"y":66,},
"108":{"character":108,"h":30,"offset":0,"shift":7,"w":3,"x":21,"y":66,},
"109":{"character":109,"h":30,"offset":0,"shift":20,"w":17,"x":2,"y":66,},
"110":{"character":110,"h":30,"offset":0,"shift":14,"w":10,"x":234,"y":34,},
"111":{"character":111,"h":30,"offset":0,"shift":14,"w":10,"x":222,"y":34,},
"112":{"character":112,"h":30,"offset":0,"shift":14,"w":10,"x":210,"y":34,},
"113":{"character":113,"h":30,"offset":0,"shift":14,"w":10,"x":198,"y":34,},
"114":{"character":114,"h":30,"offset":0,"shift":10,"w":7,"x":189,"y":34,},
"115":{"character":115,"h":30,"offset":0,"shift":14,"w":10,"x":43,"y":66,},
"116":{"character":116,"h":30,"offset":0,"shift":10,"w":7,"x":180,"y":34,},
"117":{"character":117,"h":30,"offset":0,"shift":14,"w":10,"x":156,"y":34,},
"118":{"character":118,"h":30,"offset":0,"shift":14,"w":10,"x":144,"y":34,},
"119":{"character":119,"h":30,"offset":0,"shift":20,"w":17,"x":125,"y":34,},
"120":{"character":120,"h":30,"offset":0,"shift":14,"w":10,"x":113,"y":34,},
"121":{"character":121,"h":30,"offset":0,"shift":14,"w":10,"x":101,"y":34,},
"122":{"character":122,"h":30,"offset":0,"shift":14,"w":10,"x":89,"y":34,},
"123":{"character":123,"h":30,"offset":0,"shift":14,"w":10,"x":77,"y":34,},
"124":{"character":124,"h":30,"offset":0,"shift":7,"w":3,"x":72,"y":34,},
"125":{"character":125,"h":30,"offset":0,"shift":14,"w":10,"x":60,"y":34,},
"126":{"character":126,"h":30,"offset":0,"shift":10,"w":7,"x":172,"y":130,},
"9647":{"character":9647,"h":30,"offset":5,"shift":26,"w":16,"x":181,"y":130,},
},
"hinting":0,
"includeTTF":true,
"interpreter":0,
"italic":false,
"kerningPairs":[],
"last":0,
"lineHeight":30,
"maintainGms1Font":false,
"name":"fnt_Tiny5",
"parent":{
"name":"Fonts",
"path":"folders/Fonts.yy",
},
"pointRounding":0,
"ranges":[
{"lower":32,"upper":127,},
{"lower":9647,"upper":9647,},
],
"regenerateBitmap":false,
"resourceType":"GMFont",
"resourceVersion":"2.0",
"sampleText":"abcdef ABCDEF\n0123456789 .,<>\"'&!?\nthe quick brown fox jumps over the lazy dog\nTHE QUICK BROWN FOX JUMPS OVER THE LAZY DOG\nDefault character: ▯ (9647)",
"sdfSpread":8,
"size":20.0,
"styleName":"Regular",
"textureGroupId":null,
"TTFName":"C:\\Users\\andre\\GameMakerProjects\\Bit Blaster\\fonts\\fnt_Tiny5\\Tiny5-Regular.ttf",
"usesSDF":false,
}

36
objects/o_all_hurt/o_all_hurt.yy generated Normal file
View File

@@ -0,0 +1,36 @@
{
"$GMObject":"",
"%Name":"o_all_hurt",
"eventList":[],
"managed":true,
"name":"o_all_hurt",
"overriddenProperties":[],
"parent":{
"name":"Generic",
"path":"folders/Generic.yy",
},
"parentObjectId":{
"name":"o_parent_hurt",
"path":"objects/o_parent_hurt/o_parent_hurt.yy",
},
"persistent":false,
"physicsAngularDamping":0.1,
"physicsDensity":0.5,
"physicsFriction":0.2,
"physicsGroup":1,
"physicsKinematic":false,
"physicsLinearDamping":0.1,
"physicsObject":false,
"physicsRestitution":0.1,
"physicsSensor":false,
"physicsShape":1,
"physicsShapePoints":[],
"physicsStartAwake":true,
"properties":[],
"resourceType":"GMObject",
"resourceVersion":"2.0",
"solid":false,
"spriteId":null,
"spriteMaskId":null,
"visible":true,
}

View File

@@ -0,0 +1,28 @@
// Inherit the parent event
event_inherited();
move_dir = 0;
move_spd = 0;
chase_spd = 0.5
x_speed = 0;
y_speed = 0;
face = 1;
sprites[0] = s_archer_idle;
sprites[1] = s_archer_walk;
sprites[2] = s_archer_attack;
sprites[3] = s_archer_hurt;
sprites[4] = s_archer_death;
// State machine
state = 0;
shoot_timer = 0;
charge_time = 30;
recover_time = 60;
cooldown_time = 5*60;
bullet_inst = noone;
has_started_shooting = false;
// Spawn
fade_spd = 1/30;
spawn_spd = .25;

View File

@@ -0,0 +1,7 @@
if instance_exists(bullet_inst) && bullet_inst.state == 0 {
bullet_inst.is_exploding = true;
bullet_inst.sprite_index = s_arrow_destroy;
bullet_inst.image_index = 0; // Reset animation
bullet_inst.image_speed = 1; // Play explosion animation
bullet_inst.bullet_spd = 0;
}

View File

@@ -0,0 +1,7 @@
draw_sprite_ext(sprite_index, image_index, x, y, face, image_yscale, image_angle, image_blend, image_alpha);
var _healh_pct = hp / max_hp;
var _hp_img = _healh_pct * (sprite_get_number(s_enemy_health) - 1);
if instance_exists(o_player) {
draw_sprite_ext(s_enemy_health, _hp_img, x - 8, y - sprite_height / 2 - 5, image_xscale, image_yscale, image_angle, image_blend, image_alpha);
}

142
objects/o_archer/Step_0.gml Normal file
View File

@@ -0,0 +1,142 @@
// Pause
if pause_movement() { exit; }
var _wall_collisions = true;
var _get_damaged = true;
// State machine
switch(state) {
case -1:
// Spawn from spawner
if image_alpha < 1 {
move_spd = 0;
image_alpha += fade_spd;
}
_wall_collisions = false;
_get_damaged = false;
if image_alpha >= 1 {
move_spd = spawn_spd;
if instance_exists(o_player) {
move_dir = point_direction(x, y, o_player.x, o_player.y);
}
}
if !place_meeting(x, y, o_wall) {
state = 0;
}
break;
case 0:
if instance_exists(o_player) {
move_dir = point_direction(x, y, o_player.x, o_player.y);
}
move_spd = chase_spd;
var _cam_left = camera_get_view_x(view_camera[0]);
var _cam_right = _cam_left + camera_get_view_width(view_camera[0]);
var _cam_top = camera_get_view_y(view_camera[0]);
var _cam_bottom = _cam_top + camera_get_view_height(view_camera[0]);
if bbox_right > _cam_left && bbox_left < _cam_right && bbox_bottom > _cam_top && bbox_top < _cam_bottom {
shoot_timer++
}
if shoot_timer > cooldown_time {
state = 1;
shoot_timer = 0;
}
break;
case 1:
if instance_exists(o_player) {
move_dir = point_direction(x, y, o_player.x, o_player.y);
}
move_spd = 0;
shoot_timer++;
if shoot_timer == 1 && hp > 0 {
// Create arrow
bullet_inst = instance_create_depth(x, y, depth, o_arrow);
}
if shoot_timer == charge_time && instance_exists(bullet_inst) && hp > 0 {
bullet_inst.image_angle = move_dir;
bullet_inst.state = 1;
}
if shoot_timer > charge_time + recover_time {
state = 0;
shoot_timer = 0;
}
break;
}
// Chasing
#region
x_speed = lengthdir_x(move_spd, move_dir);
y_speed = lengthdir_y(move_spd, move_dir);
// Wall collisons
if _wall_collisions == true {
if place_meeting(x + x_speed, y, o_wall) {
x_speed = 0;
}
if place_meeting(x, y + y_speed, o_wall) {
y_speed = 0;
}
}
if place_meeting(x + x_speed, y, o_parent_enemy) {
x_speed = 0;
}
if place_meeting(x, y + y_speed, o_parent_enemy) {
y_speed = 0;
}
if (!is_stopping) {
x += x_speed;
y += y_speed;
}
depth = -y;
#endregion
// Sprite controls
#region
// Check if the enemy is moving
var is_moving = (x_speed != 0 || y_speed != 0);
// Update animation based on movement
if state == 1 {
sprite_index = sprites[2];
} else if is_moving {
sprite_index = sprites[1]; // Walking animation
} else {
sprite_index = sprites[0]; // Idle animation
}
// Determine facing direction
if x_speed != 0 {
face = sign(x_speed);
} else {
if instance_exists(o_player) {
var _player_offset_x = o_player.x - x;
face = (_player_offset_x > 0) ? 1 : -1;
}
}
#endregion
is_dying(sprites[4]);
// Inherit the parent event
if _get_damaged {
event_inherited();
}

44
objects/o_archer/o_archer.yy generated Normal file
View File

@@ -0,0 +1,44 @@
{
"$GMObject":"",
"%Name":"o_archer",
"eventList":[
{"$GMEvent":"v1","%Name":"","collisionObjectId":null,"eventNum":0,"eventType":0,"isDnD":false,"name":"","resourceType":"GMEvent","resourceVersion":"2.0",},
{"$GMEvent":"v1","%Name":"","collisionObjectId":null,"eventNum":0,"eventType":3,"isDnD":false,"name":"","resourceType":"GMEvent","resourceVersion":"2.0",},
{"$GMEvent":"v1","%Name":"","collisionObjectId":null,"eventNum":0,"eventType":8,"isDnD":false,"name":"","resourceType":"GMEvent","resourceVersion":"2.0",},
{"$GMEvent":"v1","%Name":"","collisionObjectId":null,"eventNum":0,"eventType":1,"isDnD":false,"name":"","resourceType":"GMEvent","resourceVersion":"2.0",},
],
"managed":true,
"name":"o_archer",
"overriddenProperties":[],
"parent":{
"name":"Enemies",
"path":"folders/Enemies.yy",
},
"parentObjectId":{
"name":"o_parent_enemy",
"path":"objects/o_parent_enemy/o_parent_enemy.yy",
},
"persistent":false,
"physicsAngularDamping":0.1,
"physicsDensity":0.5,
"physicsFriction":0.2,
"physicsGroup":1,
"physicsKinematic":false,
"physicsLinearDamping":0.1,
"physicsObject":false,
"physicsRestitution":0.1,
"physicsSensor":false,
"physicsShape":1,
"physicsShapePoints":[],
"physicsStartAwake":true,
"properties":[],
"resourceType":"GMObject",
"resourceVersion":"2.0",
"solid":false,
"spriteId":{
"name":"s_archer_idle",
"path":"sprites/s_archer_idle/s_archer_idle.yy",
},
"spriteMaskId":null,
"visible":true,
}

View File

@@ -0,0 +1,12 @@
event_inherited();
bullet_dir = 0;
bullet_spd = 4;
start_x = x;
start_y = y;
is_exploding = false;
max_distance = 500;
s_destroy = s_arrow_destroy;
pass_through_enemy = false;
state = 0;

View File

@@ -0,0 +1,3 @@
if sprite_index == s_destroy {
instance_destroy();
}

View File

@@ -0,0 +1,44 @@
if pause_movement() { exit; }
switch(state) {
case 0:
if instance_exists(o_player) {
bullet_dir = point_direction(x, y, o_player.x, o_player.y);
}
depth = -y - 50;
break;
case 1:
if (!is_exploding) {
// Calculate movement
var bullet_x_spd = lengthdir_x(bullet_spd, bullet_dir);
var bullet_y_spd = lengthdir_y(bullet_spd, bullet_dir);
// Move the fireball
x += bullet_x_spd;
y += bullet_y_spd;
depth = -y;
if hit_confirmed && !pass_through_enemy {
destroy_projectile()
}
// Check for collision with solid wall
if place_meeting(x, y, o_solid_wall) {
destroy_projectile();
}
// Check if fireball has traveled too far
if point_distance(start_x, start_y, x, y) > max_distance {
destroy_projectile();
}
if bbox_right < 0 || bbox_left > room_width || bbox_bottom < 0 || bbox_top > room_height {
destroy_projectile();
}
}
break;
}

43
objects/o_arrow/o_arrow.yy generated Normal file
View File

@@ -0,0 +1,43 @@
{
"$GMObject":"",
"%Name":"o_arrow",
"eventList":[
{"$GMEvent":"v1","%Name":"","collisionObjectId":null,"eventNum":0,"eventType":0,"isDnD":false,"name":"","resourceType":"GMEvent","resourceVersion":"2.0",},
{"$GMEvent":"v1","%Name":"","collisionObjectId":null,"eventNum":0,"eventType":3,"isDnD":false,"name":"","resourceType":"GMEvent","resourceVersion":"2.0",},
{"$GMEvent":"v1","%Name":"","collisionObjectId":null,"eventNum":7,"eventType":7,"isDnD":false,"name":"","resourceType":"GMEvent","resourceVersion":"2.0",},
],
"managed":true,
"name":"o_arrow",
"overriddenProperties":[],
"parent":{
"name":"Enemies",
"path":"folders/Enemies.yy",
},
"parentObjectId":{
"name":"o_player_hurt",
"path":"objects/o_player_hurt/o_player_hurt.yy",
},
"persistent":false,
"physicsAngularDamping":0.1,
"physicsDensity":0.5,
"physicsFriction":0.2,
"physicsGroup":1,
"physicsKinematic":false,
"physicsLinearDamping":0.1,
"physicsObject":false,
"physicsRestitution":0.1,
"physicsSensor":false,
"physicsShape":1,
"physicsShapePoints":[],
"physicsStartAwake":true,
"properties":[],
"resourceType":"GMObject",
"resourceVersion":"2.0",
"solid":false,
"spriteId":{
"name":"s_arrow",
"path":"sprites/s_arrow/s_arrow.yy",
},
"spriteMaskId":null,
"visible":true,
}

View File

@@ -0,0 +1 @@
get_damaged_destroy();

View File

@@ -0,0 +1,4 @@
get_damaged_create(30);
depth = -700;

View File

@@ -0,0 +1,7 @@
get_damaged(o_parent_hurt, false, false);
if hp <= 0 {
instance_destroy();
instance_create_depth(x, y, -100, o_blocker_stump);
}

43
objects/o_blocker/o_blocker.yy generated Normal file
View File

@@ -0,0 +1,43 @@
{
"$GMObject":"",
"%Name":"o_blocker",
"eventList":[
{"$GMEvent":"v1","%Name":"","collisionObjectId":null,"eventNum":0,"eventType":0,"isDnD":false,"name":"","resourceType":"GMEvent","resourceVersion":"2.0",},
{"$GMEvent":"v1","%Name":"","collisionObjectId":null,"eventNum":0,"eventType":3,"isDnD":false,"name":"","resourceType":"GMEvent","resourceVersion":"2.0",},
{"$GMEvent":"v1","%Name":"","collisionObjectId":null,"eventNum":0,"eventType":12,"isDnD":false,"name":"","resourceType":"GMEvent","resourceVersion":"2.0",},
],
"managed":true,
"name":"o_blocker",
"overriddenProperties":[],
"parent":{
"name":"Rooms",
"path":"folders/Rooms.yy",
},
"parentObjectId":{
"name":"o_solid_wall",
"path":"objects/o_solid_wall/o_solid_wall.yy",
},
"persistent":false,
"physicsAngularDamping":0.1,
"physicsDensity":0.5,
"physicsFriction":0.2,
"physicsGroup":1,
"physicsKinematic":false,
"physicsLinearDamping":0.1,
"physicsObject":false,
"physicsRestitution":0.1,
"physicsSensor":false,
"physicsShape":1,
"physicsShapePoints":[],
"physicsStartAwake":true,
"properties":[],
"resourceType":"GMObject",
"resourceVersion":"2.0",
"solid":false,
"spriteId":{
"name":"s_blocker",
"path":"sprites/s_blocker/s_blocker.yy",
},
"spriteMaskId":null,
"visible":true,
}

View File

@@ -0,0 +1,36 @@
{
"$GMObject":"",
"%Name":"o_blocker_destroyed",
"eventList":[],
"managed":true,
"name":"o_blocker_destroyed",
"overriddenProperties":[],
"parent":{
"name":"Rooms",
"path":"folders/Rooms.yy",
},
"parentObjectId":null,
"persistent":false,
"physicsAngularDamping":0.1,
"physicsDensity":0.5,
"physicsFriction":0.2,
"physicsGroup":1,
"physicsKinematic":false,
"physicsLinearDamping":0.1,
"physicsObject":false,
"physicsRestitution":0.1,
"physicsSensor":false,
"physicsShape":1,
"physicsShapePoints":[],
"physicsStartAwake":true,
"properties":[],
"resourceType":"GMObject",
"resourceVersion":"2.0",
"solid":false,
"spriteId":{
"name":"s_blocker_destroyed",
"path":"sprites/s_blocker_destroyed/s_blocker_destroyed.yy",
},
"spriteMaskId":null,
"visible":true,
}

View File

@@ -0,0 +1 @@
get_damaged_destroy();

View File

@@ -0,0 +1 @@
get_damaged_create(100);

View File

@@ -0,0 +1,7 @@
get_damaged(o_parent_hurt, false, false);
if hp <= 0 {
instance_destroy();
instance_create_depth(x, y, -100, o_blocker_destroyed);
}

View File

@@ -0,0 +1,43 @@
{
"$GMObject":"",
"%Name":"o_blocker_stump",
"eventList":[
{"$GMEvent":"v1","%Name":"","collisionObjectId":null,"eventNum":0,"eventType":0,"isDnD":false,"name":"","resourceType":"GMEvent","resourceVersion":"2.0",},
{"$GMEvent":"v1","%Name":"","collisionObjectId":null,"eventNum":0,"eventType":12,"isDnD":false,"name":"","resourceType":"GMEvent","resourceVersion":"2.0",},
{"$GMEvent":"v1","%Name":"","collisionObjectId":null,"eventNum":0,"eventType":3,"isDnD":false,"name":"","resourceType":"GMEvent","resourceVersion":"2.0",},
],
"managed":true,
"name":"o_blocker_stump",
"overriddenProperties":[],
"parent":{
"name":"Rooms",
"path":"folders/Rooms.yy",
},
"parentObjectId":{
"name":"o_wall",
"path":"objects/o_wall/o_wall.yy",
},
"persistent":false,
"physicsAngularDamping":0.1,
"physicsDensity":0.5,
"physicsFriction":0.2,
"physicsGroup":1,
"physicsKinematic":false,
"physicsLinearDamping":0.1,
"physicsObject":false,
"physicsRestitution":0.1,
"physicsSensor":false,
"physicsShape":1,
"physicsShapePoints":[],
"physicsStartAwake":true,
"properties":[],
"resourceType":"GMObject",
"resourceVersion":"2.0",
"solid":false,
"spriteId":{
"name":"s_blocker_stump",
"path":"sprites/s_blocker_stump/s_blocker_stump.yy",
},
"spriteMaskId":null,
"visible":true,
}

View File

@@ -0,0 +1,13 @@
x_shake = 0;
x_shake_dir = 0;
x_shake_dir_spd = 45;
x_shake_amt = 0;
x_shake_amt_spd = 1/4;
y_shake = 0;
y_shake = 0;
y_shake_dir = 0;
y_shake_dir_spd = 45;
y_shake_amt = 0;
y_shake_amt_spd = 1/4;
audio_play_sound(background_music, 0, true);

View File

@@ -0,0 +1,35 @@
var _cam_width = camera_get_view_width(view_camera[0]);
var _cam_height = camera_get_view_height(view_camera[0]);
if instance_exists(o_player) {
x = o_player.x - _cam_width / 2;
y = o_player.center_y - _cam_height / 2;
}
#region
if x_shake_amt > 0 {
x_shake_dir += x_shake_dir_spd;
x_shake_amt -= x_shake_amt_spd;
} else {
x_shake_amt = 0;
x_shake_dir = 0;
}
x_shake = dsin(x_shake_dir) * x_shake_amt;
if y_shake_amt > 0 {
y_shake_dir += y_shake_dir_spd;
y_shake_amt -= y_shake_amt_spd;
} else {
y_shake_amt = 0;
y_shake_dir = 0;
}
y_shake = dsin(y_shake_dir) * y_shake_amt;
#endregion
x += x_shake;
y += y_shake;
x = clamp(x, 0, room_width - _cam_width);
y = clamp(y, 0, room_height - _cam_height);
camera_set_view_pos(view_camera[0], x, y);

36
objects/o_camera/o_camera.yy generated Normal file
View File

@@ -0,0 +1,36 @@
{
"$GMObject":"",
"%Name":"o_camera",
"eventList":[
{"$GMEvent":"v1","%Name":"","collisionObjectId":null,"eventNum":2,"eventType":3,"isDnD":false,"name":"","resourceType":"GMEvent","resourceVersion":"2.0",},
{"$GMEvent":"v1","%Name":"","collisionObjectId":null,"eventNum":0,"eventType":0,"isDnD":false,"name":"","resourceType":"GMEvent","resourceVersion":"2.0",},
],
"managed":true,
"name":"o_camera",
"overriddenProperties":[],
"parent":{
"name":"Controllers",
"path":"folders/Controllers.yy",
},
"parentObjectId":null,
"persistent":true,
"physicsAngularDamping":0.1,
"physicsDensity":0.5,
"physicsFriction":0.2,
"physicsGroup":1,
"physicsKinematic":false,
"physicsLinearDamping":0.1,
"physicsObject":false,
"physicsRestitution":0.1,
"physicsSensor":false,
"physicsShape":1,
"physicsShapePoints":[],
"physicsStartAwake":true,
"properties":[],
"resourceType":"GMObject",
"resourceVersion":"2.0",
"solid":false,
"spriteId":null,
"spriteMaskId":null,
"visible":true,
}

View File

@@ -0,0 +1,7 @@
// Inherit the parent event
event_inherited();
damage = 5;
bullet_spd = 4;
max_distance = 150;
s_destroy = s_disc_destroy;

41
objects/o_disc/o_disc.yy generated Normal file
View File

@@ -0,0 +1,41 @@
{
"$GMObject":"",
"%Name":"o_disc",
"eventList":[
{"$GMEvent":"v1","%Name":"","collisionObjectId":null,"eventNum":0,"eventType":0,"isDnD":false,"name":"","resourceType":"GMEvent","resourceVersion":"2.0",},
],
"managed":true,
"name":"o_disc",
"overriddenProperties":[],
"parent":{
"name":"Spells",
"path":"folders/Spells.yy",
},
"parentObjectId":{
"name":"o_fireball",
"path":"objects/o_fireball/o_fireball.yy",
},
"persistent":false,
"physicsAngularDamping":0.1,
"physicsDensity":0.5,
"physicsFriction":0.2,
"physicsGroup":1,
"physicsKinematic":false,
"physicsLinearDamping":0.1,
"physicsObject":false,
"physicsRestitution":0.1,
"physicsSensor":false,
"physicsShape":1,
"physicsShapePoints":[],
"physicsStartAwake":true,
"properties":[],
"resourceType":"GMObject",
"resourceVersion":"2.0",
"solid":false,
"spriteId":{
"name":"s_disc",
"path":"sprites/s_disc/s_disc.yy",
},
"spriteMaskId":null,
"visible":true,
}

View File

@@ -0,0 +1,5 @@
alpha = 0;
alpha_spd = 1/75;
alpha_mul = 0.8;
depth = -10000;

View File

@@ -0,0 +1,17 @@
var _cam_x = camera_get_view_x(view_camera[0]);
var _cam_w = camera_get_view_width(view_camera[0]);
var _cam_y = camera_get_view_y(view_camera[0]);
var _cam_h = camera_get_view_height(view_camera[0]);
draw_set_alpha(alpha * alpha_mul);
draw_rectangle_color(_cam_x, _cam_y, _cam_w + _cam_x, _cam_h + _cam_y, c_yellow, c_yellow, c_black, c_black, false);
draw_set_alpha(alpha);
draw_set_halign(fa_center);
draw_set_valign(fa_middle);
draw_set_font(fnt_Tiny5);
draw_text_transformed(_cam_x + (_cam_w / 2), _cam_y + (_cam_h / 2) - 20, "YOU WON!", 4, 4, 0);
draw_text_transformed(_cam_x + (_cam_w / 2), _cam_y + (_cam_h / 2) + 50, "-< Press any key to continue >-", 1, 1, 0);
draw_set_halign(fa_left);
draw_set_valign(fa_top);
draw_set_alpha(1);

View File

@@ -0,0 +1,9 @@
alpha += alpha_spd;
alpha = clamp(alpha, 0, 1);
if keyboard_check_pressed(vk_anykey) && alpha >= 1 {
global.enemyRoomMax += 100;
global.enemyActiveMax += 20;
global.first_start = false;
room_restart();
}

40
objects/o_end_screen/o_end_screen.yy generated Normal file
View File

@@ -0,0 +1,40 @@
{
"$GMObject":"",
"%Name":"o_end_screen",
"eventList":[
{"$GMEvent":"v1","%Name":"","collisionObjectId":null,"eventNum":0,"eventType":0,"isDnD":false,"name":"","resourceType":"GMEvent","resourceVersion":"2.0",},
{"$GMEvent":"v1","%Name":"","collisionObjectId":null,"eventNum":0,"eventType":3,"isDnD":false,"name":"","resourceType":"GMEvent","resourceVersion":"2.0",},
{"$GMEvent":"v1","%Name":"","collisionObjectId":null,"eventNum":0,"eventType":8,"isDnD":false,"name":"","resourceType":"GMEvent","resourceVersion":"2.0",},
],
"managed":true,
"name":"o_end_screen",
"overriddenProperties":[],
"parent":{
"name":"Controllers",
"path":"folders/Controllers.yy",
},
"parentObjectId":{
"name":"o_screen_pause",
"path":"objects/o_screen_pause/o_screen_pause.yy",
},
"persistent":false,
"physicsAngularDamping":0.1,
"physicsDensity":0.5,
"physicsFriction":0.2,
"physicsGroup":1,
"physicsKinematic":false,
"physicsLinearDamping":0.1,
"physicsObject":false,
"physicsRestitution":0.1,
"physicsSensor":false,
"physicsShape":1,
"physicsShapePoints":[],
"physicsStartAwake":true,
"properties":[],
"resourceType":"GMObject",
"resourceVersion":"2.0",
"solid":false,
"spriteId":null,
"spriteMaskId":null,
"visible":true,
}

36
objects/o_enemy_hurt/o_enemy_hurt.yy generated Normal file
View File

@@ -0,0 +1,36 @@
{
"$GMObject":"",
"%Name":"o_enemy_hurt",
"eventList":[],
"managed":true,
"name":"o_enemy_hurt",
"overriddenProperties":[],
"parent":{
"name":"Enemies",
"path":"folders/Enemies.yy",
},
"parentObjectId":{
"name":"o_parent_hurt",
"path":"objects/o_parent_hurt/o_parent_hurt.yy",
},
"persistent":false,
"physicsAngularDamping":0.1,
"physicsDensity":0.5,
"physicsFriction":0.2,
"physicsGroup":1,
"physicsKinematic":false,
"physicsLinearDamping":0.1,
"physicsObject":false,
"physicsRestitution":0.1,
"physicsSensor":false,
"physicsShape":1,
"physicsShapePoints":[],
"physicsStartAwake":true,
"properties":[],
"resourceType":"GMObject",
"resourceVersion":"2.0",
"solid":false,
"spriteId":null,
"spriteMaskId":null,
"visible":true,
}

View File

@@ -0,0 +1,4 @@
// Damage
damage = 100;
created_damage_objects = false;
hurt_instance = noone;

View File

@@ -0,0 +1 @@
instance_destroy();

View File

@@ -0,0 +1,21 @@
if pause_movement() { exit; }
if !created_damage_objects {
hurt_instance = instance_create_depth(x, y, 0, o_all_hurt);
with(hurt_instance) {
damage = other.damage;
mask_index = other.sprite_index;
image_xscale = other.image_xscale;
image_yscale = other.image_yscale;
}
created_damage_objects = true;
}
// When done, stop damage
if floor(image_index) >= 3 {
if instance_exists(hurt_instance) {
instance_destroy(hurt_instance);
}
}

40
objects/o_explosion/o_explosion.yy generated Normal file
View File

@@ -0,0 +1,40 @@
{
"$GMObject":"",
"%Name":"o_explosion",
"eventList":[
{"$GMEvent":"v1","%Name":"","collisionObjectId":null,"eventNum":7,"eventType":7,"isDnD":false,"name":"","resourceType":"GMEvent","resourceVersion":"2.0",},
{"$GMEvent":"v1","%Name":"","collisionObjectId":null,"eventNum":0,"eventType":0,"isDnD":false,"name":"","resourceType":"GMEvent","resourceVersion":"2.0",},
{"$GMEvent":"v1","%Name":"","collisionObjectId":null,"eventNum":0,"eventType":3,"isDnD":false,"name":"","resourceType":"GMEvent","resourceVersion":"2.0",},
],
"managed":true,
"name":"o_explosion",
"overriddenProperties":[],
"parent":{
"name":"Rooms",
"path":"folders/Rooms.yy",
},
"parentObjectId":null,
"persistent":false,
"physicsAngularDamping":0.1,
"physicsDensity":0.5,
"physicsFriction":0.2,
"physicsGroup":1,
"physicsKinematic":false,
"physicsLinearDamping":0.1,
"physicsObject":false,
"physicsRestitution":0.1,
"physicsSensor":false,
"physicsShape":1,
"physicsShapePoints":[],
"physicsStartAwake":true,
"properties":[],
"resourceType":"GMObject",
"resourceVersion":"2.0",
"solid":false,
"spriteId":{
"name":"s_explosion",
"path":"sprites/s_explosion/s_explosion.yy",
},
"spriteMaskId":null,
"visible":true,
}

View File

@@ -0,0 +1 @@
get_damaged_destroy();

View File

@@ -0,0 +1 @@
get_damaged_create(20);

View File

@@ -0,0 +1,14 @@
get_damaged(o_parent_hurt, false, false);
var _health_pct = 1 - (hp / max_hp);
image_index = _health_pct * (image_number - 1);
if hp <= 0 {
instance_create_depth(x, y, -1000, o_explosion);
audio_play_sound(explosion, 0, false);
create_screen_pause(12);
camera_shake(12);
instance_destroy();
}

46
objects/o_explosive/o_explosive.yy generated Normal file
View File

@@ -0,0 +1,46 @@
{
"$GMObject":"",
"%Name":"o_explosive",
"eventList":[
{"$GMEvent":"v1","%Name":"","collisionObjectId":null,"eventNum":0,"eventType":0,"isDnD":false,"name":"","resourceType":"GMEvent","resourceVersion":"2.0",},
{"$GMEvent":"v1","%Name":"","collisionObjectId":null,"eventNum":0,"eventType":3,"isDnD":false,"name":"","resourceType":"GMEvent","resourceVersion":"2.0",},
{"$GMEvent":"v1","%Name":"","collisionObjectId":null,"eventNum":0,"eventType":12,"isDnD":false,"name":"","resourceType":"GMEvent","resourceVersion":"2.0",},
],
"managed":true,
"name":"o_explosive",
"overriddenProperties":[],
"parent":{
"name":"Rooms",
"path":"folders/Rooms.yy",
},
"parentObjectId":{
"name":"o_solid_wall",
"path":"objects/o_solid_wall/o_solid_wall.yy",
},
"persistent":false,
"physicsAngularDamping":0.1,
"physicsDensity":0.5,
"physicsFriction":0.2,
"physicsGroup":1,
"physicsKinematic":false,
"physicsLinearDamping":0.1,
"physicsObject":false,
"physicsRestitution":0.1,
"physicsSensor":false,
"physicsShape":1,
"physicsShapePoints":[],
"physicsStartAwake":true,
"properties":[],
"resourceType":"GMObject",
"resourceVersion":"2.0",
"solid":false,
"spriteId":{
"name":"s_explosive",
"path":"sprites/s_explosive/s_explosive.yy",
},
"spriteMaskId":{
"name":"s_explosive",
"path":"sprites/s_explosive/s_explosive.yy",
},
"visible":true,
}

View File

@@ -0,0 +1,12 @@
event_inherited();
bullet_dir = 0;
bullet_spd = 5;
bullet_x_spd = 0;
bullet_y_spd = 0;
is_exploding = false;
start_x = x;
start_y = y;
max_distance = 300;
s_destroy = s_fireball_destroy;
pass_through_enemy = false;

View File

@@ -0,0 +1,3 @@
if sprite_index == s_destroy {
instance_destroy();
}

View File

@@ -0,0 +1,28 @@
if pause_movement() { exit; }
// Movements
#region
if (!is_exploding) {
// Calculate movement
var x_speed = lengthdir_x(bullet_spd, bullet_dir);
var y_speed = lengthdir_y(bullet_spd, bullet_dir);
// Move the fireball
x += x_speed;
y += y_speed;
if hit_confirmed && !pass_through_enemy {
destroy_projectile()
}
// Check for collision with solid wall
if place_meeting(x, y, o_solid_wall) {
destroy_projectile();
}
// Check if fireball has traveled too far
if point_distance(start_x, start_y, x, y) > max_distance {
destroy_projectile();
}
}
#endregion

43
objects/o_fireball/o_fireball.yy generated Normal file
View File

@@ -0,0 +1,43 @@
{
"$GMObject":"",
"%Name":"o_fireball",
"eventList":[
{"$GMEvent":"v1","%Name":"","collisionObjectId":null,"eventNum":0,"eventType":0,"isDnD":false,"name":"","resourceType":"GMEvent","resourceVersion":"2.0",},
{"$GMEvent":"v1","%Name":"","collisionObjectId":null,"eventNum":0,"eventType":3,"isDnD":false,"name":"","resourceType":"GMEvent","resourceVersion":"2.0",},
{"$GMEvent":"v1","%Name":"","collisionObjectId":null,"eventNum":7,"eventType":7,"isDnD":false,"name":"","resourceType":"GMEvent","resourceVersion":"2.0",},
],
"managed":true,
"name":"o_fireball",
"overriddenProperties":[],
"parent":{
"name":"Spells",
"path":"folders/Spells.yy",
},
"parentObjectId":{
"name":"o_enemy_hurt",
"path":"objects/o_enemy_hurt/o_enemy_hurt.yy",
},
"persistent":false,
"physicsAngularDamping":0.1,
"physicsDensity":0.5,
"physicsFriction":0.2,
"physicsGroup":1,
"physicsKinematic":false,
"physicsLinearDamping":0.1,
"physicsObject":false,
"physicsRestitution":0.1,
"physicsSensor":false,
"physicsShape":1,
"physicsShapePoints":[],
"physicsStartAwake":true,
"properties":[],
"resourceType":"GMObject",
"resourceVersion":"2.0",
"solid":false,
"spriteId":{
"name":"s_fireball",
"path":"sprites/s_fireball/s_fireball.yy",
},
"spriteMaskId":null,
"visible":true,
}

View File

@@ -0,0 +1,5 @@
alpha = 0;
alpha_spd = 1/75;
alpha_mul = 0.9;
depth = -10000;

View File

@@ -0,0 +1,18 @@
var _cam_x = camera_get_view_x(view_camera[0]);
var _cam_w = camera_get_view_width(view_camera[0]);
var _cam_y = camera_get_view_y(view_camera[0]);
var _cam_h = camera_get_view_height(view_camera[0]);
draw_set_alpha(alpha * alpha_mul);
draw_rectangle_color(_cam_x, _cam_y, _cam_w + _cam_x, _cam_h + _cam_y, c_red, c_red, c_black, c_black, false);
draw_set_alpha(alpha);
draw_set_halign(fa_center);
draw_set_valign(fa_middle);
draw_set_font(fnt_Special_Elite);
draw_text_transformed(_cam_x + (_cam_w / 2), _cam_y + (_cam_h / 2) - 20, "YOU DIED", 4, 4, 0);
draw_set_font(fnt_Tiny5);
draw_text_transformed(_cam_x + (_cam_w / 2), _cam_y + (_cam_h / 2) + 50, "-< Press any key to resurrect >-", 1, 1, 0);
draw_set_halign(fa_left);
draw_set_valign(fa_top);
draw_set_alpha(1);

View File

@@ -0,0 +1,7 @@
alpha += alpha_spd;
alpha = clamp(alpha, 0, 1);
if keyboard_check_pressed(vk_anykey) && alpha >= 1 {
global.first_start = false;
room_restart()
}

37
objects/o_game_over/o_game_over.yy generated Normal file
View File

@@ -0,0 +1,37 @@
{
"$GMObject":"",
"%Name":"o_game_over",
"eventList":[
{"$GMEvent":"v1","%Name":"","collisionObjectId":null,"eventNum":0,"eventType":0,"isDnD":false,"name":"","resourceType":"GMEvent","resourceVersion":"2.0",},
{"$GMEvent":"v1","%Name":"","collisionObjectId":null,"eventNum":0,"eventType":3,"isDnD":false,"name":"","resourceType":"GMEvent","resourceVersion":"2.0",},
{"$GMEvent":"v1","%Name":"","collisionObjectId":null,"eventNum":0,"eventType":8,"isDnD":false,"name":"","resourceType":"GMEvent","resourceVersion":"2.0",},
],
"managed":true,
"name":"o_game_over",
"overriddenProperties":[],
"parent":{
"name":"Controllers",
"path":"folders/Controllers.yy",
},
"parentObjectId":null,
"persistent":false,
"physicsAngularDamping":0.1,
"physicsDensity":0.5,
"physicsFriction":0.2,
"physicsGroup":1,
"physicsKinematic":false,
"physicsLinearDamping":0.1,
"physicsObject":false,
"physicsRestitution":0.1,
"physicsSensor":false,
"physicsShape":1,
"physicsShapePoints":[],
"physicsStartAwake":true,
"properties":[],
"resourceType":"GMObject",
"resourceVersion":"2.0",
"solid":false,
"spriteId":null,
"spriteMaskId":null,
"visible":true,
}

View File

@@ -0,0 +1 @@
player_ref = o_player;

View File

@@ -0,0 +1,8 @@
if instance_exists(player_ref) {
x = player_ref.x;
y = player_ref.y;
}
if image_index >= image_number - 1 {
instance_destroy();
}

39
objects/o_heal/o_heal.yy generated Normal file
View File

@@ -0,0 +1,39 @@
{
"$GMObject":"",
"%Name":"o_heal",
"eventList":[
{"$GMEvent":"v1","%Name":"","collisionObjectId":null,"eventNum":0,"eventType":3,"isDnD":false,"name":"","resourceType":"GMEvent","resourceVersion":"2.0",},
{"$GMEvent":"v1","%Name":"","collisionObjectId":null,"eventNum":0,"eventType":0,"isDnD":false,"name":"","resourceType":"GMEvent","resourceVersion":"2.0",},
],
"managed":true,
"name":"o_heal",
"overriddenProperties":[],
"parent":{
"name":"Spells",
"path":"folders/Spells.yy",
},
"parentObjectId":null,
"persistent":false,
"physicsAngularDamping":0.1,
"physicsDensity":0.5,
"physicsFriction":0.2,
"physicsGroup":1,
"physicsKinematic":false,
"physicsLinearDamping":0.1,
"physicsObject":false,
"physicsRestitution":0.1,
"physicsSensor":false,
"physicsShape":1,
"physicsShapePoints":[],
"physicsStartAwake":true,
"properties":[],
"resourceType":"GMObject",
"resourceVersion":"2.0",
"solid":false,
"spriteId":{
"name":"s_heal",
"path":"sprites/s_heal/s_heal.yy",
},
"spriteMaskId":null,
"visible":true,
}

View File

@@ -0,0 +1,17 @@
depth = -9000;
global.first_start = true;
player_hp = 0;
player_max_hp = 0;
global.enemyRoomMax = 100;
global.enemyActiveMax = 20;
global.totalEnemiesSpawned = 0;
global.enemyKillCount = 0;
// Weapon pickup
global.weapon_notification = "";
global.weapon_notification_timer = 0;
menu_inst = noone;

37
objects/o_hud/Draw_0.gml Normal file
View File

@@ -0,0 +1,37 @@
var _cam_x = camera_get_view_x(view_camera[0]);
var _cam_w = camera_get_view_width(view_camera[0]);
var _cam_y = camera_get_view_y(view_camera[0]);
var _cam_h = camera_get_view_height(view_camera[0]);
var _padding = 10;
var _hud_x = _cam_x + _padding;
var _hud_y = _cam_y + _padding;
if instance_exists(o_player) && !instance_exists(o_screen_pause) {
draw_sprite(s_player_health, 0, _hud_x, _hud_y);
for (var i = 0; i < player_max_hp / 10; i++) {
var _img = 1;
if i + 1 <= player_hp / 10 { _img = 2; };
var _sep = 6;
draw_sprite(s_player_health, _img, _hud_x + _sep * i, _hud_y);
}
draw_sprite(s_kill_count, 0, _hud_x, _hud_y + 20);
draw_set_halign(fa_left);
draw_set_valign(fa_top);
draw_set_font(fnt_Tiny5);
draw_text_transformed(_hud_x + 28, _hud_y + 23, string(global.enemyKillCount) , 0.5, 0.5, 0);
draw_text_transformed(_hud_x + 49, _hud_y + 23, " / " + string(global.enemyRoomMax), 0.5, 0.5, 0);
}
// Draw notification if active
if (global.weapon_notification != "") {
draw_set_font(fnt_Tiny5);
draw_set_halign(fa_left);
draw_set_valign(fa_top);
// Draw at top center of screen
draw_text_transformed(_hud_x + 23, _hud_y + 40, global.weapon_notification , 0.5, 0.5, 0);
}

View File

@@ -0,0 +1,5 @@
global.totalEnemiesSpawned = 0;
global.enemyKillCount = 0;
global.weapon_notification = "";
global.weapon_notification_timer = 0;

26
objects/o_hud/Step_0.gml Normal file
View File

@@ -0,0 +1,26 @@
if global.first_start {
menu_inst = instance_create_depth(0, 0, -10000, o_start_menu)
}
if global.start_key_pressed && instance_exists(menu_inst) {
instance_destroy(menu_inst);
}
// Get player's hp
if instance_exists(o_player) {
player_hp = o_player.hp;
player_max_hp = o_player.max_hp;
} else {
player_hp = 0;
}
if (global.weapon_notification_timer > 0) {
global.weapon_notification_timer--;
if (global.weapon_notification_timer <= 0) {
global.weapon_notification = "";
}
}
if (global.enemyKillCount >= global.enemyRoomMax) {
instance_create_depth(0, 0, -10000, o_end_screen);
}

38
objects/o_hud/o_hud.yy generated Normal file
View File

@@ -0,0 +1,38 @@
{
"$GMObject":"",
"%Name":"o_hud",
"eventList":[
{"$GMEvent":"v1","%Name":"","collisionObjectId":null,"eventNum":0,"eventType":0,"isDnD":false,"name":"","resourceType":"GMEvent","resourceVersion":"2.0",},
{"$GMEvent":"v1","%Name":"","collisionObjectId":null,"eventNum":0,"eventType":3,"isDnD":false,"name":"","resourceType":"GMEvent","resourceVersion":"2.0",},
{"$GMEvent":"v1","%Name":"","collisionObjectId":null,"eventNum":0,"eventType":8,"isDnD":false,"name":"","resourceType":"GMEvent","resourceVersion":"2.0",},
{"$GMEvent":"v1","%Name":"","collisionObjectId":null,"eventNum":5,"eventType":7,"isDnD":false,"name":"","resourceType":"GMEvent","resourceVersion":"2.0",},
],
"managed":true,
"name":"o_hud",
"overriddenProperties":[],
"parent":{
"name":"Controllers",
"path":"folders/Controllers.yy",
},
"parentObjectId":null,
"persistent":true,
"physicsAngularDamping":0.1,
"physicsDensity":0.5,
"physicsFriction":0.2,
"physicsGroup":1,
"physicsKinematic":false,
"physicsLinearDamping":0.1,
"physicsObject":false,
"physicsRestitution":0.1,
"physicsSensor":false,
"physicsShape":1,
"physicsShapePoints":[],
"physicsStartAwake":true,
"properties":[],
"resourceType":"GMObject",
"resourceVersion":"2.0",
"solid":false,
"spriteId":null,
"spriteMaskId":null,
"visible":true,
}

View File

@@ -0,0 +1,7 @@
// Inherit the parent event
event_inherited();
damage = 50;
bullet_spd = 2;
max_distance = 200;
s_destroy = s_icebolt_destroy;

41
objects/o_icebolt/o_icebolt.yy generated Normal file
View File

@@ -0,0 +1,41 @@
{
"$GMObject":"",
"%Name":"o_icebolt",
"eventList":[
{"$GMEvent":"v1","%Name":"","collisionObjectId":null,"eventNum":0,"eventType":0,"isDnD":false,"name":"","resourceType":"GMEvent","resourceVersion":"2.0",},
],
"managed":true,
"name":"o_icebolt",
"overriddenProperties":[],
"parent":{
"name":"Spells",
"path":"folders/Spells.yy",
},
"parentObjectId":{
"name":"o_fireball",
"path":"objects/o_fireball/o_fireball.yy",
},
"persistent":false,
"physicsAngularDamping":0.1,
"physicsDensity":0.5,
"physicsFriction":0.2,
"physicsGroup":1,
"physicsKinematic":false,
"physicsLinearDamping":0.1,
"physicsObject":false,
"physicsRestitution":0.1,
"physicsSensor":false,
"physicsShape":1,
"physicsShapePoints":[],
"physicsStartAwake":true,
"properties":[],
"resourceType":"GMObject",
"resourceVersion":"2.0",
"solid":false,
"spriteId":{
"name":"s_icebolt",
"path":"sprites/s_icebolt/s_icebolt.yy",
},
"spriteMaskId":null,
"visible":true,
}

View File

@@ -0,0 +1,11 @@
global.right_key = 0;
global.left_key = 0;
global.up_key = 0;
global.down_key = 0;
global.shoot_key = 0;
global.swap_key_pressed = 0;
global.heal_key_pressed = 0;
global.start_key_pressed = 0;
global.space_key_pressed = 0;
global.back_key_pressed = 0;
global.pause_key_pressed = 0;

View File

@@ -0,0 +1,18 @@
global.start_key_pressed = keyboard_check_pressed(vk_enter);
global.space_key_pressed = keyboard_check_pressed(vk_space);
global.back_key_pressed = keyboard_check_pressed(vk_backspace)
if instance_exists(o_start_menu) || instance_exists(o_tutorial) {
exit;
}
global.right_key = keyboard_check(ord("D"));
global.left_key = keyboard_check(ord("A"));
global.up_key = keyboard_check(ord("W"));
global.down_key = keyboard_check(ord("S"));
global.shoot_key = mouse_check_button(mb_left);
global.swap_key_pressed = mouse_check_button_pressed(mb_right);
global.heal_key_pressed = keyboard_check(ord("Q"));
global.pause_key_pressed = keyboard_check_pressed(vk_escape);

36
objects/o_inputs/o_inputs.yy generated Normal file
View File

@@ -0,0 +1,36 @@
{
"$GMObject":"",
"%Name":"o_inputs",
"eventList":[
{"$GMEvent":"v1","%Name":"","collisionObjectId":null,"eventNum":0,"eventType":0,"isDnD":false,"name":"","resourceType":"GMEvent","resourceVersion":"2.0",},
{"$GMEvent":"v1","%Name":"","collisionObjectId":null,"eventNum":1,"eventType":3,"isDnD":false,"name":"","resourceType":"GMEvent","resourceVersion":"2.0",},
],
"managed":true,
"name":"o_inputs",
"overriddenProperties":[],
"parent":{
"name":"Controllers",
"path":"folders/Controllers.yy",
},
"parentObjectId":null,
"persistent":true,
"physicsAngularDamping":0.1,
"physicsDensity":0.5,
"physicsFriction":0.2,
"physicsGroup":1,
"physicsKinematic":false,
"physicsLinearDamping":0.1,
"physicsObject":false,
"physicsRestitution":0.1,
"physicsSensor":false,
"physicsShape":1,
"physicsShapePoints":[],
"physicsStartAwake":true,
"properties":[],
"resourceType":"GMObject",
"resourceVersion":"2.0",
"solid":false,
"spriteId":null,
"spriteMaskId":null,
"visible":true,
}

View File

@@ -0,0 +1,3 @@
depth = -600;
float_dir = 0;
float_spd = 3;

View File

@@ -0,0 +1,18 @@
// Pause
if pause_movement() { exit; }
// Floating animation
float_dir += float_spd;
y = ystart + dsin(float_dir) * 2;
// Check player collision
if place_meeting(x, y, o_player) {
var obtained_weapon = get_random_weapon();
if (obtained_weapon != undefined) {
audio_play_sound(item_pick, 0, false);
// Set global notification
global.weapon_notification = "Got " + obtained_weapon.name + "!";
global.weapon_notification_timer = 90; // 1.5 seconds at 60FPS
instance_destroy();
}
}

39
objects/o_new_spell/o_new_spell.yy generated Normal file
View File

@@ -0,0 +1,39 @@
{
"$GMObject":"",
"%Name":"o_new_spell",
"eventList":[
{"$GMEvent":"v1","%Name":"","collisionObjectId":null,"eventNum":0,"eventType":3,"isDnD":false,"name":"","resourceType":"GMEvent","resourceVersion":"2.0",},
{"$GMEvent":"v1","%Name":"","collisionObjectId":null,"eventNum":0,"eventType":0,"isDnD":false,"name":"","resourceType":"GMEvent","resourceVersion":"2.0",},
],
"managed":true,
"name":"o_new_spell",
"overriddenProperties":[],
"parent":{
"name":"Spells",
"path":"folders/Spells.yy",
},
"parentObjectId":null,
"persistent":false,
"physicsAngularDamping":0.1,
"physicsDensity":0.5,
"physicsFriction":0.2,
"physicsGroup":1,
"physicsKinematic":false,
"physicsLinearDamping":0.1,
"physicsObject":false,
"physicsRestitution":0.1,
"physicsSensor":false,
"physicsShape":1,
"physicsShapePoints":[],
"physicsStartAwake":true,
"properties":[],
"resourceType":"GMObject",
"resourceVersion":"2.0",
"solid":false,
"spriteId":{
"name":"s_new_spell",
"path":"sprites/s_new_spell/s_new_spell.yy",
},
"spriteMaskId":null,
"visible":true,
}

View File

@@ -0,0 +1 @@
get_damaged_destroy();

View File

@@ -0,0 +1,4 @@
event_inherited();
get_damaged_create(100);
global.totalEnemiesSpawned++;

View File

@@ -0,0 +1,13 @@
if sprite_index == sprites[4] {
global.enemyKillCount++;
// Drop healing milk
var _drop_chance = 10;
var _chance = irandom(100);
if global.enemyKillCount mod 20 == 0 || _chance <= _drop_chance {
instance_create_depth(x, y, -600, o_potion);
}
instance_destroy();
}

View File

@@ -0,0 +1,2 @@
// Damaged
get_damaged(o_enemy_hurt);

41
objects/o_parent_enemy/o_parent_enemy.yy generated Normal file
View File

@@ -0,0 +1,41 @@
{
"$GMObject":"",
"%Name":"o_parent_enemy",
"eventList":[
{"$GMEvent":"v1","%Name":"","collisionObjectId":null,"eventNum":0,"eventType":0,"isDnD":false,"name":"","resourceType":"GMEvent","resourceVersion":"2.0",},
{"$GMEvent":"v1","%Name":"","collisionObjectId":null,"eventNum":0,"eventType":3,"isDnD":false,"name":"","resourceType":"GMEvent","resourceVersion":"2.0",},
{"$GMEvent":"v1","%Name":"","collisionObjectId":null,"eventNum":7,"eventType":7,"isDnD":false,"name":"","resourceType":"GMEvent","resourceVersion":"2.0",},
{"$GMEvent":"v1","%Name":"","collisionObjectId":null,"eventNum":0,"eventType":12,"isDnD":false,"name":"","resourceType":"GMEvent","resourceVersion":"2.0",},
],
"managed":true,
"name":"o_parent_enemy",
"overriddenProperties":[],
"parent":{
"name":"Enemies",
"path":"folders/Enemies.yy",
},
"parentObjectId":{
"name":"o_player_hurt",
"path":"objects/o_player_hurt/o_player_hurt.yy",
},
"persistent":false,
"physicsAngularDamping":0.1,
"physicsDensity":0.5,
"physicsFriction":0.2,
"physicsGroup":1,
"physicsKinematic":false,
"physicsLinearDamping":0.1,
"physicsObject":false,
"physicsRestitution":0.1,
"physicsSensor":false,
"physicsShape":1,
"physicsShapePoints":[],
"physicsStartAwake":true,
"properties":[],
"resourceType":"GMObject",
"resourceVersion":"2.0",
"solid":false,
"spriteId":null,
"spriteMaskId":null,
"visible":true,
}

View File

@@ -0,0 +1,2 @@
damage = 10;
hit_confirmed = false;

35
objects/o_parent_hurt/o_parent_hurt.yy generated Normal file
View File

@@ -0,0 +1,35 @@
{
"$GMObject":"",
"%Name":"o_parent_hurt",
"eventList":[
{"$GMEvent":"v1","%Name":"","collisionObjectId":null,"eventNum":0,"eventType":0,"isDnD":false,"name":"","resourceType":"GMEvent","resourceVersion":"2.0",},
],
"managed":true,
"name":"o_parent_hurt",
"overriddenProperties":[],
"parent":{
"name":"Generic",
"path":"folders/Generic.yy",
},
"parentObjectId":null,
"persistent":false,
"physicsAngularDamping":0.1,
"physicsDensity":0.5,
"physicsFriction":0.2,
"physicsGroup":1,
"physicsKinematic":false,
"physicsLinearDamping":0.1,
"physicsObject":false,
"physicsRestitution":0.1,
"physicsSensor":false,
"physicsShape":1,
"physicsShapePoints":[],
"physicsStartAwake":true,
"properties":[],
"resourceType":"GMObject",
"resourceVersion":"2.0",
"solid":false,
"spriteId":null,
"spriteMaskId":null,
"visible":true,
}

View File

@@ -0,0 +1,3 @@
alpha = 0.7;
depth = -10000;

View File

@@ -0,0 +1,16 @@
var _cam_x = camera_get_view_x(view_camera[0]);
var _cam_w = camera_get_view_width(view_camera[0]);
var _cam_y = camera_get_view_y(view_camera[0]);
var _cam_h = camera_get_view_height(view_camera[0]);
draw_set_alpha(alpha);
draw_rectangle_color(_cam_x, _cam_y, _cam_w + _cam_x, _cam_h + _cam_y, c_black, c_black, c_black, c_black, false);
draw_set_halign(fa_center);
draw_set_valign(fa_middle);
draw_set_font(fnt_Tiny5);
draw_text_transformed(_cam_x + (_cam_w / 2), _cam_y + (_cam_h / 2) - 20, "PAUSED", 4, 4, 0);
draw_sprite_ext(s_key_esc, image_index, _cam_x + (_cam_w / 2) + 160, _cam_y + (_cam_h / 2) + 60, 1.5, 1.5, 0, c_white, alpha);
draw_text_transformed(_cam_x + (_cam_w / 2), _cam_y + (_cam_h / 2) + 50, "-< Press ESC to resume", 1, 1, 0);
draw_set_halign(fa_left);
draw_set_valign(fa_top);
draw_set_alpha(1);

View File

@@ -0,0 +1,4 @@
if !instance_exists(o_player) {
instance_destroy();
exit;
}

40
objects/o_pause_menu/o_pause_menu.yy generated Normal file
View File

@@ -0,0 +1,40 @@
{
"$GMObject":"",
"%Name":"o_pause_menu",
"eventList":[
{"$GMEvent":"v1","%Name":"","collisionObjectId":null,"eventNum":0,"eventType":8,"isDnD":false,"name":"","resourceType":"GMEvent","resourceVersion":"2.0",},
{"$GMEvent":"v1","%Name":"","collisionObjectId":null,"eventNum":0,"eventType":0,"isDnD":false,"name":"","resourceType":"GMEvent","resourceVersion":"2.0",},
{"$GMEvent":"v1","%Name":"","collisionObjectId":null,"eventNum":0,"eventType":3,"isDnD":false,"name":"","resourceType":"GMEvent","resourceVersion":"2.0",},
],
"managed":true,
"name":"o_pause_menu",
"overriddenProperties":[],
"parent":{
"name":"Controllers",
"path":"folders/Controllers.yy",
},
"parentObjectId":{
"name":"o_screen_pause",
"path":"objects/o_screen_pause/o_screen_pause.yy",
},
"persistent":false,
"physicsAngularDamping":0.1,
"physicsDensity":0.5,
"physicsFriction":0.2,
"physicsGroup":1,
"physicsKinematic":false,
"physicsLinearDamping":0.1,
"physicsObject":false,
"physicsRestitution":0.1,
"physicsSensor":false,
"physicsShape":1,
"physicsShapePoints":[],
"physicsStartAwake":true,
"properties":[],
"resourceType":"GMObject",
"resourceVersion":"2.0",
"solid":false,
"spriteId":null,
"spriteMaskId":null,
"visible":true,
}

View File

@@ -0,0 +1,36 @@
// Vital stats
get_damaged_create(200, true);
// Movement variables
move_dir = 0;
move_spd = 2;
x_speed = 0;
y_speed = 0;
// Aiming variables
center_y_offset = -5;
center_y = y + center_y_offset;
aim_dir = 0;
// Sprite controls
face = 1;
sprites[0] = s_player_idle;
sprites[1] = s_player_walk;
sprites[2] = s_player_attack;
sprites[3] = s_player_hurt;
sprites[4] = s_player_death;
sprites[5] = s_player_heal;
sprite_index = sprites[0];
// Weapon info
shoot_timer = 0;
heal_timer = 0;
heal_cooldown = 30 * 60;
weapon_offset_dist = 5;
weapon_length = sprite_get_bbox_right(s_aimer) - sprite_get_xoffset(s_aimer);
// Add weapon to player's inventory
selected_weapon = 0;
weapon = global.PlayerWeapons[selected_weapon];

View File

@@ -0,0 +1,10 @@
if aim_dir >= 0 && aim_dir < 180 {
draw_own_weapon();
}
draw_sprite_ext(sprite_index, image_index, x, y, face, image_yscale, image_angle, image_blend, image_alpha);
if aim_dir >= 180 && aim_dir < 360 {
draw_own_weapon();
}

View File

@@ -0,0 +1,4 @@
if sprite_index == sprites[4] {
instance_create_depth(0, 0, -10000, o_game_over);
instance_destroy();
}

143
objects/o_player/Step_0.gml Normal file
View File

@@ -0,0 +1,143 @@
var right_key = global.right_key;
var left_key = global.left_key;
var up_key = global.up_key;
var down_key = global.down_key;
var shoot_key = global.shoot_key;
var swap_key_pressed = global.swap_key_pressed;
var heal_key_pressed = global.heal_key_pressed;
var pause_key_pressed = global.pause_key_pressed;
// Pause game
if pause_key_pressed {
if !instance_exists(o_pause_menu) {
instance_create_depth(0, 0, -10000, o_pause_menu);
} else {
instance_destroy(o_pause_menu);
}
}
if pause_movement() { exit; }
// Movements
#region
var _horizontal_key = right_key - left_key;
var _vertical_key = down_key - up_key;
move_dir = point_direction(0, 0, _horizontal_key, _vertical_key);
// Speeds
var _speed = 0;
var _input_lvl = point_distance(0, 0, _horizontal_key, _vertical_key);
_input_lvl = clamp(_input_lvl, 0 , 1);
_speed = move_spd * _input_lvl;
x_speed = lengthdir_x(_speed, move_dir);
y_speed = lengthdir_y(_speed, move_dir);
// Collision
if place_meeting(x + x_speed, y, o_wall) {
x_speed = 0;
}
if place_meeting(x, y + y_speed, o_wall) {
y_speed = 0;
}
x += x_speed;
y += y_speed;
depth = -600;
#endregion
// Sprite controls
#region
// Determine if the player is moving
var is_moving = (_horizontal_key != 0 || _vertical_key != 0);
// Update animation based on movement
if (is_moving) {
sprite_index = sprites[1]; // Walking animation
} else {
sprite_index = sprites[0]; // Idle animation
}
// Determine facing direction
if (_horizontal_key != 0) {
face = sign(_horizontal_key);
} else if (!is_moving) {
var _mouse_x_offset = mouse_x - x;
face = (_mouse_x_offset > 0) ? 1 : -1;
}
#endregion
// Get damaged
if get_damaged(o_player_hurt, true) {
audio_play_sound(hurt_sound, 0, false);
create_screen_pause(6);
camera_shake(6);
}
// Aiming
#region
center_y = y + center_y_offset;
aim_dir = point_direction(x, center_y, mouse_x, mouse_y)
#endregion
// Shooting
#region
if shoot_key {
sprite_index = sprites[2];
}
if shoot_timer > 0 {
shoot_timer--;
}
if shoot_key && shoot_timer <= 0 {
shoot_timer = weapon.cooldown;
var _x_offset = lengthdir_x(weapon_length + weapon_offset_dist, aim_dir);
var _y_offset = lengthdir_y(weapon_length + weapon_offset_dist, aim_dir);
var _spread = weapon.bullet_spread;
var _spread_div = _spread / max(weapon.bullet_num - 1, 1);
for (var i = 0; i < weapon.bullet_num; i++) {
var _bullet_inst = instance_create_depth(x + _x_offset + i*10, center_y + _y_offset, depth-50, weapon.bullet_obj);
with (_bullet_inst) {
bullet_dir = other.aim_dir - _spread/2 + _spread_div*i;
image_angle = bullet_dir;
}
}
}
#endregion
// Heal
#region
if (heal_timer > 0) {
heal_timer--; // Reduce cooldown timer each step
}
if (heal_key_pressed && heal_timer <= 0) {
instance_create_depth(x, y, depth - 100, o_heal); // Spawn heal effect
sprite_index = sprites[5]; // Play heal animation
heal_timer = heal_cooldown; // Set cooldown
audio_play_sound(item_pick, 0, false);
hp += 20;
}
#endregion
// Swap weapons
#region
var _player_weapons = global.PlayerWeapons;
if swap_key_pressed {
selected_weapon++;
if selected_weapon >= array_length(_player_weapons) {
selected_weapon = 0;
}
weapon = _player_weapons[selected_weapon];
}
#endregion
// Die
is_dying(sprites[4]);

41
objects/o_player/o_player.yy generated Normal file
View File

@@ -0,0 +1,41 @@
{
"$GMObject":"",
"%Name":"o_player",
"eventList":[
{"$GMEvent":"v1","%Name":"","collisionObjectId":null,"eventNum":0,"eventType":0,"isDnD":false,"name":"","resourceType":"GMEvent","resourceVersion":"2.0",},
{"$GMEvent":"v1","%Name":"","collisionObjectId":null,"eventNum":0,"eventType":3,"isDnD":false,"name":"","resourceType":"GMEvent","resourceVersion":"2.0",},
{"$GMEvent":"v1","%Name":"","collisionObjectId":null,"eventNum":0,"eventType":8,"isDnD":false,"name":"","resourceType":"GMEvent","resourceVersion":"2.0",},
{"$GMEvent":"v1","%Name":"","collisionObjectId":null,"eventNum":7,"eventType":7,"isDnD":false,"name":"","resourceType":"GMEvent","resourceVersion":"2.0",},
],
"managed":true,
"name":"o_player",
"overriddenProperties":[],
"parent":{
"name":"Player",
"path":"folders/Player.yy",
},
"parentObjectId":null,
"persistent":false,
"physicsAngularDamping":0.1,
"physicsDensity":0.5,
"physicsFriction":0.2,
"physicsGroup":1,
"physicsKinematic":false,
"physicsLinearDamping":0.1,
"physicsObject":false,
"physicsRestitution":0.1,
"physicsSensor":false,
"physicsShape":1,
"physicsShapePoints":[],
"physicsStartAwake":true,
"properties":[],
"resourceType":"GMObject",
"resourceVersion":"2.0",
"solid":false,
"spriteId":{
"name":"s_player_walk",
"path":"sprites/s_player_walk/s_player_walk.yy",
},
"spriteMaskId":null,
"visible":true,
}

36
objects/o_player_hurt/o_player_hurt.yy generated Normal file
View File

@@ -0,0 +1,36 @@
{
"$GMObject":"",
"%Name":"o_player_hurt",
"eventList":[],
"managed":true,
"name":"o_player_hurt",
"overriddenProperties":[],
"parent":{
"name":"Player",
"path":"folders/Player.yy",
},
"parentObjectId":{
"name":"o_parent_hurt",
"path":"objects/o_parent_hurt/o_parent_hurt.yy",
},
"persistent":false,
"physicsAngularDamping":0.1,
"physicsDensity":0.5,
"physicsFriction":0.2,
"physicsGroup":1,
"physicsKinematic":false,
"physicsLinearDamping":0.1,
"physicsObject":false,
"physicsRestitution":0.1,
"physicsSensor":false,
"physicsShape":1,
"physicsShapePoints":[],
"physicsStartAwake":true,
"properties":[],
"resourceType":"GMObject",
"resourceVersion":"2.0",
"solid":false,
"spriteId":null,
"spriteMaskId":null,
"visible":true,
}

View File

@@ -0,0 +1,8 @@
// Inherit the parent event
event_inherited();
damage = 5;
bullet_spd = 8;
max_distance = 600;
s_destroy = s_poison_destroy;
pass_through_enemy = true;

41
objects/o_poison/o_poison.yy generated Normal file
View File

@@ -0,0 +1,41 @@
{
"$GMObject":"",
"%Name":"o_poison",
"eventList":[
{"$GMEvent":"v1","%Name":"","collisionObjectId":null,"eventNum":0,"eventType":0,"isDnD":false,"name":"","resourceType":"GMEvent","resourceVersion":"2.0",},
],
"managed":true,
"name":"o_poison",
"overriddenProperties":[],
"parent":{
"name":"Spells",
"path":"folders/Spells.yy",
},
"parentObjectId":{
"name":"o_fireball",
"path":"objects/o_fireball/o_fireball.yy",
},
"persistent":false,
"physicsAngularDamping":0.1,
"physicsDensity":0.5,
"physicsFriction":0.2,
"physicsGroup":1,
"physicsKinematic":false,
"physicsLinearDamping":0.1,
"physicsObject":false,
"physicsRestitution":0.1,
"physicsSensor":false,
"physicsShape":1,
"physicsShapePoints":[],
"physicsStartAwake":true,
"properties":[],
"resourceType":"GMObject",
"resourceVersion":"2.0",
"solid":false,
"spriteId":{
"name":"s_poison",
"path":"sprites/s_poison/s_poison.yy",
},
"spriteMaskId":null,
"visible":true,
}

View File

@@ -0,0 +1,4 @@
depth = -600;
heal = 50;
float_dir = 0;
float_spd = 3;

View File

@@ -0,0 +1,12 @@
// Pause
if pause_movement() { exit; }
float_dir += float_spd;
y = ystart + dsin(float_dir) * 2;
// Heal player
if place_meeting(x, y, o_player) {
o_player.hp += heal;
audio_play_sound(item_pick, 0, false);
instance_destroy();
}

39
objects/o_potion/o_potion.yy generated Normal file
View File

@@ -0,0 +1,39 @@
{
"$GMObject":"",
"%Name":"o_potion",
"eventList":[
{"$GMEvent":"v1","%Name":"","collisionObjectId":null,"eventNum":0,"eventType":0,"isDnD":false,"name":"","resourceType":"GMEvent","resourceVersion":"2.0",},
{"$GMEvent":"v1","%Name":"","collisionObjectId":null,"eventNum":0,"eventType":3,"isDnD":false,"name":"","resourceType":"GMEvent","resourceVersion":"2.0",},
],
"managed":true,
"name":"o_potion",
"overriddenProperties":[],
"parent":{
"name":"Player",
"path":"folders/Player.yy",
},
"parentObjectId":null,
"persistent":false,
"physicsAngularDamping":0.1,
"physicsDensity":0.5,
"physicsFriction":0.2,
"physicsGroup":1,
"physicsKinematic":false,
"physicsLinearDamping":0.1,
"physicsObject":false,
"physicsRestitution":0.1,
"physicsSensor":false,
"physicsShape":1,
"physicsShapePoints":[],
"physicsStartAwake":true,
"properties":[],
"resourceType":"GMObject",
"resourceVersion":"2.0",
"solid":false,
"spriteId":{
"name":"s_potion",
"path":"sprites/s_potion/s_potion.yy",
},
"spriteMaskId":null,
"visible":true,
}

33
objects/o_screen_pause/o_screen_pause.yy generated Normal file
View File

@@ -0,0 +1,33 @@
{
"$GMObject":"",
"%Name":"o_screen_pause",
"eventList":[],
"managed":true,
"name":"o_screen_pause",
"overriddenProperties":[],
"parent":{
"name":"Controllers",
"path":"folders/Controllers.yy",
},
"parentObjectId":null,
"persistent":false,
"physicsAngularDamping":0.1,
"physicsDensity":0.5,
"physicsFriction":0.2,
"physicsGroup":1,
"physicsKinematic":false,
"physicsLinearDamping":0.1,
"physicsObject":false,
"physicsRestitution":0.1,
"physicsSensor":false,
"physicsShape":1,
"physicsShapePoints":[],
"physicsStartAwake":true,
"properties":[],
"resourceType":"GMObject",
"resourceVersion":"2.0",
"solid":false,
"spriteId":null,
"spriteMaskId":null,
"visible":true,
}

Some files were not shown because too many files have changed in this diff Show More