Browse Source

initial public commit

nyairobi 2 years ago
parent
commit
746df4cce2
100 changed files with 31708 additions and 0 deletions
  1. 2 0
      .gitignore
  2. 16 0
      Walker.gd
  3. BIN
      arcade_ya/ARCADE_N.TTF
  4. BIN
      arcade_ya/ArcadeFixed.ttf
  5. 16999 0
      arcade_ya/ArcadeNormal.sfd
  6. 21 0
      arcade_ya/Readme.TXT
  7. BIN
      arcadeclassic/ARCADECLASSIC.TTF
  8. 11507 0
      arcadeclassic/ArcadeClassic.sfd
  9. BIN
      arcadeclassic/ArcadeClassic2.ttf
  10. 14 0
      arcadeclassic/pizzadudedotdk.txt
  11. 8 0
      asset/Font.tres
  12. BIN
      asset/LiberationSans-Regular.ttf
  13. BIN
      asset/black.png
  14. 35 0
      asset/black.png.import
  15. 27 0
      asset/body.tres
  16. 27 0
      asset/body_necklace.tres
  17. BIN
      asset/candle.png
  18. 35 0
      asset/candle.png.import
  19. BIN
      asset/candle_n.png
  20. 35 0
      asset/candle_n.png.import
  21. BIN
      asset/candle_sheet.png
  22. 35 0
      asset/candle_sheet.png.import
  23. 31 0
      asset/hair_black.tres
  24. 27 0
      asset/hair_brown.tres
  25. BIN
      asset/lady2-Base.png
  26. 35 0
      asset/lady2-Base.png.import
  27. BIN
      asset/lady2-Boots.png
  28. 35 0
      asset/lady2-Boots.png.import
  29. BIN
      asset/lady2-Hair.png
  30. 35 0
      asset/lady2-Hair.png.import
  31. BIN
      asset/lady3-Base.png
  32. 35 0
      asset/lady3-Base.png.import
  33. BIN
      asset/lady3-Boots.png
  34. 35 0
      asset/lady3-Boots.png.import
  35. BIN
      asset/lady3-Hair.png
  36. 35 0
      asset/lady3-Hair.png.import
  37. BIN
      asset/lady3-Hair2.png
  38. 35 0
      asset/lady3-Hair2.png.import
  39. BIN
      asset/lightning.png
  40. 35 0
      asset/lightning.png.import
  41. BIN
      asset/lightninglighting.png
  42. 35 0
      asset/lightninglighting.png.import
  43. 72 0
      asset/logo-raw.svg
  44. 35 0
      asset/logo-raw.svg.import
  45. BIN
      asset/logo.png
  46. 35 0
      asset/logo.png.import
  47. BIN
      asset/logo2.png
  48. 35 0
      asset/logo2.png.import
  49. BIN
      asset/mirror.png
  50. 35 0
      asset/mirror.png.import
  51. BIN
      asset/radial.png
  52. 35 0
      asset/radial.png.import
  53. BIN
      asset/tileset.png
  54. 35 0
      asset/tileset.png.import
  55. BIN
      asset/window.png
  56. 35 0
      asset/window.png.import
  57. 36 0
      default_bus_layout.tres
  58. 7 0
      default_env.tres
  59. 59 0
      export_presets.cfg
  60. BIN
      icon.png
  61. 35 0
      icon.png.import
  62. BIN
      music/ld51-0.ogg
  63. 15 0
      music/ld51-0.ogg.import
  64. BIN
      music/ld51-1.ogg
  65. 15 0
      music/ld51-1.ogg.import
  66. BIN
      music/ld51-2.ogg
  67. 15 0
      music/ld51-2.ogg.import
  68. BIN
      music/ld51-3.ogg
  69. 15 0
      music/ld51-3.ogg.import
  70. BIN
      music/ld51-4.ogg
  71. 15 0
      music/ld51-4.ogg.import
  72. BIN
      music/ld51-intro.ogg
  73. 15 0
      music/ld51-intro.ogg.import
  74. BIN
      music/rain_inside.ogg
  75. 15 0
      music/rain_inside.ogg.import
  76. BIN
      music/rain_outside4.ogg
  77. 15 0
      music/rain_outside4.ogg.import
  78. 31 0
      plan.txt
  79. 142 0
      project.godot
  80. 37 0
      scene/Candle.tscn
  81. 123 0
      scene/GirlMob.tscn
  82. 9 0
      scene/JumpCollider.tscn
  83. 34 0
      scene/Mirror.tscn
  84. 43 0
      scene/MusicPlayer.tscn
  85. 138 0
      scene/Player.tscn
  86. 94 0
      scene/Root.tscn
  87. 11 0
      scene/StairCollider.tscn
  88. 11 0
      scene/Stairs.tscn
  89. 21 0
      scene/VOPlayer.tscn
  90. 18 0
      scene/Walker.tscn
  91. 912 0
      scene/World.tscn
  92. 1 0
      script.txt
  93. 62 0
      script/BaseMob.gd
  94. 10 0
      script/Body.gd
  95. 31 0
      script/Boots.gd
  96. 21 0
      script/Camera2D.gd
  97. 35 0
      script/Candle.gd
  98. 123 0
      script/GirlMob.gd
  99. 93 0
      script/GirlMobNPC.gd
  100. 0 0
      script/Hair.gd

+ 2 - 0
.gitignore

@@ -0,0 +1,2 @@
+export/
+.import/

+ 16 - 0
Walker.gd

@@ -0,0 +1,16 @@
+extends Node2D
+
+
+# Declare member variables here. Examples:
+# var a = 2
+# var b = "text"
+
+
+# Called when the node enters the scene tree for the first time.
+func _ready():
+	pass # Replace with function body.
+
+
+# Called every frame. 'delta' is the elapsed time since the previous frame.
+#func _process(delta):
+#	pass

BIN
arcade_ya/ARCADE_N.TTF


BIN
arcade_ya/ArcadeFixed.ttf


File diff suppressed because it is too large
+ 16999 - 0
arcade_ya/ArcadeNormal.sfd


+ 21 - 0
arcade_ya/Readme.TXT

@@ -0,0 +1,21 @@
+=============================================================
+P.Font Series No.       : 1013
+Type                    : TrueType
+Family Name             : Arcade
+Style Name              : Arcade Normal
+                          Arcade Interlaced
+                          Arcade Rounded
+Author                  : Yuji Adachi
+Description             : Copyright (C)1997-2003 Yuji Adachi
+Support URL             : http://www.9031.com/
+=============================================================
+
+Attention
+
+印刷物、WEBページ等での御使用は自由ですが、このフォントを、
+作者の許可なく販売したり、営利目的の製品に添付することは禁じます。
+また、このフォントのデザインは予告なく変更することがあります。
+
+
+足立 裕司
+yuji@9031.com

BIN
arcadeclassic/ARCADECLASSIC.TTF


File diff suppressed because it is too large
+ 11507 - 0
arcadeclassic/ArcadeClassic.sfd


BIN
arcadeclassic/ArcadeClassic2.ttf


+ 14 - 0
arcadeclassic/pizzadudedotdk.txt

@@ -0,0 +1,14 @@
+Thank you for downloading this font!
+
+This font is copyright (c) Jakob Fischer at www.pizzadude.dk,  all rights reserved. Do not distribute without the author's permission.
+
+Use this font for non-commercial use only! If you plan to use it for commercial purposes, contact me before doing so!
+
+
+For more original fonts take a look at www.pizzadude.dk
+
+Have fun and enjoy!
+
+Jakob Fischer
+jakob@pizzadude.dk
+www.pizzadude.dk

+ 8 - 0
asset/Font.tres

@@ -0,0 +1,8 @@
+[gd_resource type="DynamicFont" load_steps=2 format=2]
+
+[ext_resource path="res://arcadeclassic/ArcadeClassic2.ttf" type="DynamicFontData" id=1]
+
+[resource]
+resource_local_to_scene = true
+size = 1000
+font_data = ExtResource( 1 )

BIN
asset/LiberationSans-Regular.ttf


BIN
asset/black.png


+ 35 - 0
asset/black.png.import

@@ -0,0 +1,35 @@
+[remap]
+
+importer="texture"
+type="StreamTexture"
+path="res://.import/black.png-0efa48dcf5450b28c23869505460d981.stex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://asset/black.png"
+dest_files=[ "res://.import/black.png-0efa48dcf5450b28c23869505460d981.stex" ]
+
+[params]
+
+compress/mode=0
+compress/lossy_quality=0.7
+compress/hdr_mode=0
+compress/bptc_ldr=0
+compress/normal_map=0
+flags/repeat=0
+flags/filter=true
+flags/mipmaps=false
+flags/anisotropic=false
+flags/srgb=2
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/HDR_as_SRGB=false
+process/invert_color=false
+process/normal_map_invert_y=false
+stream=false
+size_limit=0
+detect_3d=true
+svg/scale=1.0

+ 27 - 0
asset/body.tres

@@ -0,0 +1,27 @@
+[gd_resource type="SpriteFrames" load_steps=6 format=2]
+
+[ext_resource path="res://asset/lady3-Base.png" type="Texture" id=1]
+
+[sub_resource type="AtlasTexture" id=23]
+atlas = ExtResource( 1 )
+region = Rect2( 0, 0, 32, 33 )
+
+[sub_resource type="AtlasTexture" id=24]
+atlas = ExtResource( 1 )
+region = Rect2( 32, 0, 32, 33 )
+
+[sub_resource type="AtlasTexture" id=25]
+atlas = ExtResource( 1 )
+region = Rect2( 64, 0, 32, 33 )
+
+[sub_resource type="AtlasTexture" id=26]
+atlas = ExtResource( 1 )
+region = Rect2( 96, 0, 32, 33 )
+
+[resource]
+animations = [ {
+"frames": [ SubResource( 23 ), SubResource( 24 ), SubResource( 25 ), SubResource( 26 ), SubResource( 23 ) ],
+"loop": true,
+"name": "default",
+"speed": 5.0
+} ]

+ 27 - 0
asset/body_necklace.tres

@@ -0,0 +1,27 @@
+[gd_resource type="SpriteFrames" load_steps=6 format=2]
+
+[ext_resource path="res://asset/lady2-Base.png" type="Texture" id=1]
+
+[sub_resource type="AtlasTexture" id=5]
+atlas = ExtResource( 1 )
+region = Rect2( 0, 0, 32, 33 )
+
+[sub_resource type="AtlasTexture" id=6]
+atlas = ExtResource( 1 )
+region = Rect2( 32, 0, 32, 33 )
+
+[sub_resource type="AtlasTexture" id=7]
+atlas = ExtResource( 1 )
+region = Rect2( 64, 0, 32, 33 )
+
+[sub_resource type="AtlasTexture" id=8]
+atlas = ExtResource( 1 )
+region = Rect2( 96, 0, 32, 33 )
+
+[resource]
+animations = [ {
+"frames": [ SubResource( 5 ), SubResource( 6 ), SubResource( 7 ), SubResource( 8 ), SubResource( 5 ) ],
+"loop": false,
+"name": "default",
+"speed": 12.0
+} ]

BIN
asset/candle.png


+ 35 - 0
asset/candle.png.import

@@ -0,0 +1,35 @@
+[remap]
+
+importer="texture"
+type="StreamTexture"
+path="res://.import/candle.png-f624d9850cca664f8fde50cf4f4e81fb.stex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://asset/candle.png"
+dest_files=[ "res://.import/candle.png-f624d9850cca664f8fde50cf4f4e81fb.stex" ]
+
+[params]
+
+compress/mode=0
+compress/lossy_quality=0.7
+compress/hdr_mode=0
+compress/bptc_ldr=0
+compress/normal_map=0
+flags/repeat=0
+flags/filter=true
+flags/mipmaps=false
+flags/anisotropic=false
+flags/srgb=2
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/HDR_as_SRGB=false
+process/invert_color=false
+process/normal_map_invert_y=false
+stream=false
+size_limit=0
+detect_3d=true
+svg/scale=1.0

BIN
asset/candle_n.png


+ 35 - 0
asset/candle_n.png.import

@@ -0,0 +1,35 @@
+[remap]
+
+importer="texture"
+type="StreamTexture"
+path="res://.import/candle_n.png-79824332f15a50a8cd2a1183211dbe13.stex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://asset/candle_n.png"
+dest_files=[ "res://.import/candle_n.png-79824332f15a50a8cd2a1183211dbe13.stex" ]
+
+[params]
+
+compress/mode=0
+compress/lossy_quality=0.7
+compress/hdr_mode=0
+compress/bptc_ldr=0
+compress/normal_map=0
+flags/repeat=0
+flags/filter=true
+flags/mipmaps=false
+flags/anisotropic=false
+flags/srgb=2
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/HDR_as_SRGB=false
+process/invert_color=false
+process/normal_map_invert_y=false
+stream=false
+size_limit=0
+detect_3d=true
+svg/scale=1.0

BIN
asset/candle_sheet.png


+ 35 - 0
asset/candle_sheet.png.import

@@ -0,0 +1,35 @@
+[remap]
+
+importer="texture"
+type="StreamTexture"
+path="res://.import/candle_sheet.png-018b05a0a8eb5e22fa8993f2561e5acd.stex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://asset/candle_sheet.png"
+dest_files=[ "res://.import/candle_sheet.png-018b05a0a8eb5e22fa8993f2561e5acd.stex" ]
+
+[params]
+
+compress/mode=0
+compress/lossy_quality=0.7
+compress/hdr_mode=0
+compress/bptc_ldr=0
+compress/normal_map=0
+flags/repeat=0
+flags/filter=false
+flags/mipmaps=false
+flags/anisotropic=false
+flags/srgb=2
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/HDR_as_SRGB=false
+process/invert_color=false
+process/normal_map_invert_y=false
+stream=false
+size_limit=0
+detect_3d=true
+svg/scale=1.0

+ 31 - 0
asset/hair_black.tres

@@ -0,0 +1,31 @@
+[gd_resource type="SpriteFrames" load_steps=6 format=2]
+
+[ext_resource path="res://asset/lady3-Hair2.png" type="Texture" id=1]
+
+[sub_resource type="AtlasTexture" id=1]
+flags = 4
+atlas = ExtResource( 1 )
+region = Rect2( 0, 0, 32, 33 )
+
+[sub_resource type="AtlasTexture" id=2]
+flags = 4
+atlas = ExtResource( 1 )
+region = Rect2( 32, 0, 32, 33 )
+
+[sub_resource type="AtlasTexture" id=3]
+flags = 4
+atlas = ExtResource( 1 )
+region = Rect2( 64, 0, 32, 33 )
+
+[sub_resource type="AtlasTexture" id=4]
+flags = 4
+atlas = ExtResource( 1 )
+region = Rect2( 96, 0, 32, 33 )
+
+[resource]
+animations = [ {
+"frames": [ SubResource( 1 ), SubResource( 2 ), SubResource( 3 ), SubResource( 4 ) ],
+"loop": true,
+"name": "default",
+"speed": 5.0
+} ]

+ 27 - 0
asset/hair_brown.tres

@@ -0,0 +1,27 @@
+[gd_resource type="SpriteFrames" load_steps=6 format=2]
+
+[ext_resource path="res://asset/lady3-Hair.png" type="Texture" id=1]
+
+[sub_resource type="AtlasTexture" id=17]
+atlas = ExtResource( 1 )
+region = Rect2( 0, 0, 32, 33 )
+
+[sub_resource type="AtlasTexture" id=18]
+atlas = ExtResource( 1 )
+region = Rect2( 32, 0, 32, 33 )
+
+[sub_resource type="AtlasTexture" id=19]
+atlas = ExtResource( 1 )
+region = Rect2( 64, 0, 32, 33 )
+
+[sub_resource type="AtlasTexture" id=20]
+atlas = ExtResource( 1 )
+region = Rect2( 96, 0, 32, 33 )
+
+[resource]
+animations = [ {
+"frames": [ SubResource( 17 ), SubResource( 18 ), SubResource( 19 ), SubResource( 20 ) ],
+"loop": true,
+"name": "default",
+"speed": 5.0
+} ]

BIN
asset/lady2-Base.png


+ 35 - 0
asset/lady2-Base.png.import

@@ -0,0 +1,35 @@
+[remap]
+
+importer="texture"
+type="StreamTexture"
+path="res://.import/lady2-Base.png-863c19ef13c2279d53a92ce9779a778b.stex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://asset/lady2-Base.png"
+dest_files=[ "res://.import/lady2-Base.png-863c19ef13c2279d53a92ce9779a778b.stex" ]
+
+[params]
+
+compress/mode=0
+compress/lossy_quality=0.7
+compress/hdr_mode=0
+compress/bptc_ldr=0
+compress/normal_map=0
+flags/repeat=0
+flags/filter=false
+flags/mipmaps=false
+flags/anisotropic=false
+flags/srgb=2
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/HDR_as_SRGB=false
+process/invert_color=false
+process/normal_map_invert_y=false
+stream=false
+size_limit=0
+detect_3d=true
+svg/scale=1.0

BIN
asset/lady2-Boots.png


+ 35 - 0
asset/lady2-Boots.png.import

@@ -0,0 +1,35 @@
+[remap]
+
+importer="texture"
+type="StreamTexture"
+path="res://.import/lady2-Boots.png-ebd7f744b37bce98fb0b295fbd56c221.stex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://asset/lady2-Boots.png"
+dest_files=[ "res://.import/lady2-Boots.png-ebd7f744b37bce98fb0b295fbd56c221.stex" ]
+
+[params]
+
+compress/mode=0
+compress/lossy_quality=0.7
+compress/hdr_mode=0
+compress/bptc_ldr=0
+compress/normal_map=0
+flags/repeat=0
+flags/filter=false
+flags/mipmaps=false
+flags/anisotropic=false
+flags/srgb=2
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/HDR_as_SRGB=false
+process/invert_color=false
+process/normal_map_invert_y=false
+stream=false
+size_limit=0
+detect_3d=true
+svg/scale=1.0

BIN
asset/lady2-Hair.png


+ 35 - 0
asset/lady2-Hair.png.import

@@ -0,0 +1,35 @@
+[remap]
+
+importer="texture"
+type="StreamTexture"
+path="res://.import/lady2-Hair.png-c566be86c79d1f30f76711cca8fad61c.stex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://asset/lady2-Hair.png"
+dest_files=[ "res://.import/lady2-Hair.png-c566be86c79d1f30f76711cca8fad61c.stex" ]
+
+[params]
+
+compress/mode=0
+compress/lossy_quality=0.7
+compress/hdr_mode=0
+compress/bptc_ldr=0
+compress/normal_map=0
+flags/repeat=0
+flags/filter=false
+flags/mipmaps=false
+flags/anisotropic=false
+flags/srgb=2
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/HDR_as_SRGB=false
+process/invert_color=false
+process/normal_map_invert_y=false
+stream=false
+size_limit=0
+detect_3d=true
+svg/scale=1.0

BIN
asset/lady3-Base.png


+ 35 - 0
asset/lady3-Base.png.import

@@ -0,0 +1,35 @@
+[remap]
+
+importer="texture"
+type="StreamTexture"
+path="res://.import/lady3-Base.png-df7961c29a282d620290a589792e31db.stex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://asset/lady3-Base.png"
+dest_files=[ "res://.import/lady3-Base.png-df7961c29a282d620290a589792e31db.stex" ]
+
+[params]
+
+compress/mode=0
+compress/lossy_quality=0.7
+compress/hdr_mode=0
+compress/bptc_ldr=0
+compress/normal_map=0
+flags/repeat=0
+flags/filter=false
+flags/mipmaps=false
+flags/anisotropic=false
+flags/srgb=2
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/HDR_as_SRGB=false
+process/invert_color=false
+process/normal_map_invert_y=false
+stream=false
+size_limit=0
+detect_3d=true
+svg/scale=1.0

BIN
asset/lady3-Boots.png


+ 35 - 0
asset/lady3-Boots.png.import

@@ -0,0 +1,35 @@
+[remap]
+
+importer="texture"
+type="StreamTexture"
+path="res://.import/lady3-Boots.png-fc3c530a2d6ca8e0a8caba70826ec3fa.stex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://asset/lady3-Boots.png"
+dest_files=[ "res://.import/lady3-Boots.png-fc3c530a2d6ca8e0a8caba70826ec3fa.stex" ]
+
+[params]
+
+compress/mode=0
+compress/lossy_quality=0.7
+compress/hdr_mode=0
+compress/bptc_ldr=0
+compress/normal_map=0
+flags/repeat=0
+flags/filter=false
+flags/mipmaps=false
+flags/anisotropic=false
+flags/srgb=2
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/HDR_as_SRGB=false
+process/invert_color=false
+process/normal_map_invert_y=false
+stream=false
+size_limit=0
+detect_3d=true
+svg/scale=1.0

BIN
asset/lady3-Hair.png


+ 35 - 0
asset/lady3-Hair.png.import

@@ -0,0 +1,35 @@
+[remap]
+
+importer="texture"
+type="StreamTexture"
+path="res://.import/lady3-Hair.png-a42791c261bafbf3a21d4b4177e460ae.stex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://asset/lady3-Hair.png"
+dest_files=[ "res://.import/lady3-Hair.png-a42791c261bafbf3a21d4b4177e460ae.stex" ]
+
+[params]
+
+compress/mode=0
+compress/lossy_quality=0.7
+compress/hdr_mode=0
+compress/bptc_ldr=0
+compress/normal_map=0
+flags/repeat=0
+flags/filter=false
+flags/mipmaps=false
+flags/anisotropic=false
+flags/srgb=2
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/HDR_as_SRGB=false
+process/invert_color=false
+process/normal_map_invert_y=false
+stream=false
+size_limit=0
+detect_3d=true
+svg/scale=1.0

BIN
asset/lady3-Hair2.png


+ 35 - 0
asset/lady3-Hair2.png.import

@@ -0,0 +1,35 @@
+[remap]
+
+importer="texture"
+type="StreamTexture"
+path="res://.import/lady3-Hair2.png-d6dc505d9320e2f8cb580c6a910ab3a1.stex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://asset/lady3-Hair2.png"
+dest_files=[ "res://.import/lady3-Hair2.png-d6dc505d9320e2f8cb580c6a910ab3a1.stex" ]
+
+[params]
+
+compress/mode=0
+compress/lossy_quality=0.7
+compress/hdr_mode=0
+compress/bptc_ldr=0
+compress/normal_map=0
+flags/repeat=0
+flags/filter=true
+flags/mipmaps=false
+flags/anisotropic=false
+flags/srgb=2
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/HDR_as_SRGB=false
+process/invert_color=false
+process/normal_map_invert_y=false
+stream=false
+size_limit=0
+detect_3d=true
+svg/scale=1.0

BIN
asset/lightning.png


+ 35 - 0
asset/lightning.png.import

@@ -0,0 +1,35 @@
+[remap]
+
+importer="texture"
+type="StreamTexture"
+path="res://.import/lightning.png-3805019d83e2d2fb4cc6d9b77154cf86.stex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://asset/lightning.png"
+dest_files=[ "res://.import/lightning.png-3805019d83e2d2fb4cc6d9b77154cf86.stex" ]
+
+[params]
+
+compress/mode=0
+compress/lossy_quality=0.7
+compress/hdr_mode=0
+compress/bptc_ldr=0
+compress/normal_map=0
+flags/repeat=0
+flags/filter=false
+flags/mipmaps=false
+flags/anisotropic=false
+flags/srgb=2
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/HDR_as_SRGB=false
+process/invert_color=false
+process/normal_map_invert_y=false
+stream=false
+size_limit=0
+detect_3d=true
+svg/scale=1.0

BIN
asset/lightninglighting.png


+ 35 - 0
asset/lightninglighting.png.import

@@ -0,0 +1,35 @@
+[remap]
+
+importer="texture"
+type="StreamTexture"
+path="res://.import/lightninglighting.png-da2e9de3c2de2f9123ac511eebff8f8a.stex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://asset/lightninglighting.png"
+dest_files=[ "res://.import/lightninglighting.png-da2e9de3c2de2f9123ac511eebff8f8a.stex" ]
+
+[params]
+
+compress/mode=0
+compress/lossy_quality=0.7
+compress/hdr_mode=0
+compress/bptc_ldr=0
+compress/normal_map=0
+flags/repeat=0
+flags/filter=true
+flags/mipmaps=false
+flags/anisotropic=false
+flags/srgb=2
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/HDR_as_SRGB=false
+process/invert_color=false
+process/normal_map_invert_y=false
+stream=false
+size_limit=0
+detect_3d=true
+svg/scale=1.0

+ 72 - 0
asset/logo-raw.svg

@@ -0,0 +1,72 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   width="210mm"
+   height="297mm"
+   viewBox="0 0 210 297"
+   version="1.1"
+   id="svg5"
+   inkscape:version="1.2.1 (9c6d41e410, 2022-07-14, custom)"
+   sodipodi:docname="logo-raw.svg"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:svg="http://www.w3.org/2000/svg">
+  <sodipodi:namedview
+     id="namedview7"
+     pagecolor="#505050"
+     bordercolor="#ffffff"
+     borderopacity="1"
+     inkscape:showpageshadow="0"
+     inkscape:pageopacity="0"
+     inkscape:pagecheckerboard="1"
+     inkscape:deskcolor="#505050"
+     inkscape:document-units="mm"
+     showgrid="false"
+     inkscape:zoom="0.77593294"
+     inkscape:cx="125.0108"
+     inkscape:cy="563.193"
+     inkscape:window-width="1876"
+     inkscape:window-height="1055"
+     inkscape:window-x="44"
+     inkscape:window-y="0"
+     inkscape:window-maximized="1"
+     inkscape:current-layer="layer1" />
+  <defs
+     id="defs2" />
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1">
+    <rect
+       style="opacity:1;fill:#191919;fill-opacity:1;stroke-width:0.360693;stroke-linejoin:round;paint-order:stroke fill markers;stop-color:#000000"
+       id="rect1860"
+       width="123.6862"
+       height="74.629822"
+       x="6.6660709"
+       y="112.33743" />
+    <text
+       xml:space="preserve"
+       style="font-size:10.5833px;line-height:1.25;font-family:Analecta;-inkscape-font-specification:Analecta;stroke-width:0.264583;font-weight:normal;font-style:normal;font-stretch:normal;font-variant:normal;fill:#de8787"
+       x="37.154095"
+       y="150.14449"
+       id="text236"><tspan
+         sodipodi:role="line"
+         id="tspan234"
+         style="stroke-width:0.264583;-inkscape-font-specification:Analecta;font-family:Analecta;font-weight:normal;font-style:normal;font-stretch:normal;font-variant:normal;fill:#de8787"
+         x="37.154095"
+         y="150.14449">Missdemanor</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-size:3.175px;line-height:1.25;font-family:'Noto Sans CJK SC Regular';-inkscape-font-specification:'Noto Sans CJK SC Regular, ';text-align:center;text-anchor:middle;fill:#de8787;fill-opacity:1;stroke-width:0.264583"
+       x="68.273384"
+       y="154.821"
+       id="text479"><tspan
+         id="tspan477"
+         style="font-size:3.175px;text-align:center;text-anchor:middle;fill:#de8787;fill-opacity:1;stroke-width:0.264583"
+         x="68.273384"
+         y="154.821"
+         sodipodi:role="line">LD51 Compo</tspan></text>
+  </g>
+</svg>

+ 35 - 0
asset/logo-raw.svg.import

@@ -0,0 +1,35 @@
+[remap]
+
+importer="texture"
+type="StreamTexture"
+path="res://.import/logo-raw.svg-a5a9fc68c022be59596c5bb3661e28ce.stex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://asset/logo-raw.svg"
+dest_files=[ "res://.import/logo-raw.svg-a5a9fc68c022be59596c5bb3661e28ce.stex" ]
+
+[params]
+
+compress/mode=0
+compress/lossy_quality=0.7
+compress/hdr_mode=0
+compress/bptc_ldr=0
+compress/normal_map=0
+flags/repeat=0
+flags/filter=true
+flags/mipmaps=false
+flags/anisotropic=false
+flags/srgb=2
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/HDR_as_SRGB=false
+process/invert_color=false
+process/normal_map_invert_y=false
+stream=false
+size_limit=0
+detect_3d=true
+svg/scale=1.0

BIN
asset/logo.png


+ 35 - 0
asset/logo.png.import

@@ -0,0 +1,35 @@
+[remap]
+
+importer="texture"
+type="StreamTexture"
+path="res://.import/logo.png-74aede6b78f5eee3f8b94cee7646cc9a.stex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://asset/logo.png"
+dest_files=[ "res://.import/logo.png-74aede6b78f5eee3f8b94cee7646cc9a.stex" ]
+
+[params]
+
+compress/mode=0
+compress/lossy_quality=0.7
+compress/hdr_mode=0
+compress/bptc_ldr=0
+compress/normal_map=0
+flags/repeat=0
+flags/filter=false
+flags/mipmaps=false
+flags/anisotropic=false
+flags/srgb=2
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/HDR_as_SRGB=false
+process/invert_color=false
+process/normal_map_invert_y=false
+stream=false
+size_limit=0
+detect_3d=true
+svg/scale=1.0

BIN
asset/logo2.png


+ 35 - 0
asset/logo2.png.import

@@ -0,0 +1,35 @@
+[remap]
+
+importer="texture"
+type="StreamTexture"
+path="res://.import/logo2.png-714abfd4ae7fb427ea96bdc1ba1d9973.stex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://asset/logo2.png"
+dest_files=[ "res://.import/logo2.png-714abfd4ae7fb427ea96bdc1ba1d9973.stex" ]
+
+[params]
+
+compress/mode=0
+compress/lossy_quality=0.7
+compress/hdr_mode=0
+compress/bptc_ldr=0
+compress/normal_map=0
+flags/repeat=0
+flags/filter=true
+flags/mipmaps=false
+flags/anisotropic=false
+flags/srgb=2
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/HDR_as_SRGB=false
+process/invert_color=false
+process/normal_map_invert_y=false
+stream=false
+size_limit=0
+detect_3d=true
+svg/scale=1.0

BIN
asset/mirror.png


+ 35 - 0
asset/mirror.png.import

@@ -0,0 +1,35 @@
+[remap]
+
+importer="texture"
+type="StreamTexture"
+path="res://.import/mirror.png-b101e3fad7b2858be027ed05058a1093.stex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://asset/mirror.png"
+dest_files=[ "res://.import/mirror.png-b101e3fad7b2858be027ed05058a1093.stex" ]
+
+[params]
+
+compress/mode=0
+compress/lossy_quality=0.7
+compress/hdr_mode=0
+compress/bptc_ldr=0
+compress/normal_map=0
+flags/repeat=0
+flags/filter=false
+flags/mipmaps=false
+flags/anisotropic=false
+flags/srgb=2
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/HDR_as_SRGB=false
+process/invert_color=false
+process/normal_map_invert_y=false
+stream=false
+size_limit=0
+detect_3d=true
+svg/scale=1.0

BIN
asset/radial.png


+ 35 - 0
asset/radial.png.import

@@ -0,0 +1,35 @@
+[remap]
+
+importer="texture"
+type="StreamTexture"
+path="res://.import/radial.png-157f458aef680f6e108e64a7cf89a88e.stex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://asset/radial.png"
+dest_files=[ "res://.import/radial.png-157f458aef680f6e108e64a7cf89a88e.stex" ]
+
+[params]
+
+compress/mode=0
+compress/lossy_quality=0.7
+compress/hdr_mode=0
+compress/bptc_ldr=0
+compress/normal_map=0
+flags/repeat=0
+flags/filter=false
+flags/mipmaps=false
+flags/anisotropic=false
+flags/srgb=2
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/HDR_as_SRGB=false
+process/invert_color=false
+process/normal_map_invert_y=false
+stream=false
+size_limit=0
+detect_3d=true
+svg/scale=1.0

BIN
asset/tileset.png


+ 35 - 0
asset/tileset.png.import

@@ -0,0 +1,35 @@
+[remap]
+
+importer="texture"
+type="StreamTexture"
+path="res://.import/tileset.png-037f491c21bccbde10dc165bb225601f.stex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://asset/tileset.png"
+dest_files=[ "res://.import/tileset.png-037f491c21bccbde10dc165bb225601f.stex" ]
+
+[params]
+
+compress/mode=0
+compress/lossy_quality=0.7
+compress/hdr_mode=0
+compress/bptc_ldr=0
+compress/normal_map=0
+flags/repeat=0
+flags/filter=false
+flags/mipmaps=false
+flags/anisotropic=false
+flags/srgb=2
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/HDR_as_SRGB=false
+process/invert_color=false
+process/normal_map_invert_y=false
+stream=false
+size_limit=0
+detect_3d=true
+svg/scale=1.0

BIN
asset/window.png


+ 35 - 0
asset/window.png.import

@@ -0,0 +1,35 @@
+[remap]
+
+importer="texture"
+type="StreamTexture"
+path="res://.import/window.png-ac4257e73bf2af73cd15320228a445c8.stex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://asset/window.png"
+dest_files=[ "res://.import/window.png-ac4257e73bf2af73cd15320228a445c8.stex" ]
+
+[params]
+
+compress/mode=0
+compress/lossy_quality=0.7
+compress/hdr_mode=0
+compress/bptc_ldr=0
+compress/normal_map=0
+flags/repeat=0
+flags/filter=true
+flags/mipmaps=false
+flags/anisotropic=false
+flags/srgb=2
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/HDR_as_SRGB=false
+process/invert_color=false
+process/normal_map_invert_y=false
+stream=false
+size_limit=0
+detect_3d=true
+svg/scale=1.0

+ 36 - 0
default_bus_layout.tres

@@ -0,0 +1,36 @@
+[gd_resource type="AudioBusLayout" load_steps=4 format=2]
+
+[sub_resource type="AudioEffectLowPassFilter" id=1]
+resource_name = "LowPassFilter"
+cutoff_hz = 20500.0
+
+[sub_resource type="AudioEffectReverb" id=2]
+resource_name = "Reverb"
+room_size = 0.0
+hipass = 0.36
+wet = 0.0
+
+[sub_resource type="AudioEffectLowPassFilter" id=3]
+resource_name = "LowPassFilter"
+cutoff_hz = 20500.0
+
+[resource]
+bus/0/volume_db = 0.0672607
+bus/0/effect/0/effect = SubResource( 1 )
+bus/0/effect/0/enabled = false
+bus/1/name = "Reverb"
+bus/1/solo = false
+bus/1/mute = false
+bus/1/bypass_fx = false
+bus/1/volume_db = 0.0
+bus/1/send = "Master"
+bus/1/effect/0/effect = SubResource( 2 )
+bus/1/effect/0/enabled = true
+bus/2/name = "Music"
+bus/2/solo = false
+bus/2/mute = false
+bus/2/bypass_fx = false
+bus/2/volume_db = 0.0
+bus/2/send = "Master"
+bus/2/effect/0/effect = SubResource( 3 )
+bus/2/effect/0/enabled = true

+ 7 - 0
default_env.tres

@@ -0,0 +1,7 @@
+[gd_resource type="Environment" load_steps=2 format=2]
+
+[sub_resource type="ProceduralSky" id=1]
+
+[resource]
+background_mode = 2
+background_sky = SubResource( 1 )

+ 59 - 0
export_presets.cfg

@@ -0,0 +1,59 @@
+[preset.0]
+
+name="HTML5"
+platform="HTML5"
+runnable=true
+custom_features=""
+export_filter="all_resources"
+include_filter=""
+exclude_filter=""
+export_path="export/html5/index.html"
+script_export_mode=1
+script_encryption_key=""
+
+[preset.0.options]
+
+custom_template/debug=""
+custom_template/release=""
+variant/export_type=0
+vram_texture_compression/for_desktop=true
+vram_texture_compression/for_mobile=false
+html/export_icon=true
+html/custom_html_shell=""
+html/head_include=""
+html/canvas_resize_policy=2
+html/focus_canvas_on_start=true
+html/experimental_virtual_keyboard=false
+progressive_web_app/enabled=false
+progressive_web_app/offline_page=""
+progressive_web_app/display=1
+progressive_web_app/orientation=0
+progressive_web_app/icon_144x144=""
+progressive_web_app/icon_180x180=""
+progressive_web_app/icon_512x512=""
+progressive_web_app/background_color=Color( 0, 0, 0, 1 )
+
+[preset.1]
+
+name="Linux/X11"
+platform="Linux/X11"
+runnable=true
+custom_features=""
+export_filter="all_resources"
+include_filter=""
+exclude_filter=""
+export_path="export/linux/missdemanor.x86_64"
+script_export_mode=1
+script_encryption_key=""
+
+[preset.1.options]
+
+custom_template/debug=""
+custom_template/release=""
+binary_format/64_bits=true
+binary_format/embed_pck=true
+texture_format/bptc=false
+texture_format/s3tc=true
+texture_format/etc=false
+texture_format/etc2=false
+texture_format/no_bptc_fallbacks=true

BIN
icon.png


+ 35 - 0
icon.png.import

@@ -0,0 +1,35 @@
+[remap]
+
+importer="texture"
+type="StreamTexture"
+path="res://.import/icon.png-487276ed1e3a0c39cad0279d744ee560.stex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://icon.png"
+dest_files=[ "res://.import/icon.png-487276ed1e3a0c39cad0279d744ee560.stex" ]
+
+[params]
+
+compress/mode=0
+compress/lossy_quality=0.7
+compress/hdr_mode=0
+compress/bptc_ldr=0
+compress/normal_map=0
+flags/repeat=0
+flags/filter=true
+flags/mipmaps=false
+flags/anisotropic=false
+flags/srgb=2
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/HDR_as_SRGB=false
+process/invert_color=false
+process/normal_map_invert_y=false
+stream=false
+size_limit=0
+detect_3d=true
+svg/scale=1.0

BIN
music/ld51-0.ogg


+ 15 - 0
music/ld51-0.ogg.import

@@ -0,0 +1,15 @@
+[remap]
+
+importer="ogg_vorbis"
+type="AudioStreamOGGVorbis"
+path="res://.import/ld51-0.ogg-2a8a99d0f4762feef8a4c312103935f7.oggstr"
+
+[deps]
+
+source_file="res://music/ld51-0.ogg"
+dest_files=[ "res://.import/ld51-0.ogg-2a8a99d0f4762feef8a4c312103935f7.oggstr" ]
+
+[params]
+
+loop=true
+loop_offset=0

BIN
music/ld51-1.ogg


+ 15 - 0
music/ld51-1.ogg.import

@@ -0,0 +1,15 @@
+[remap]
+
+importer="ogg_vorbis"
+type="AudioStreamOGGVorbis"
+path="res://.import/ld51-1.ogg-d230744beee3756fa4e107927f77b124.oggstr"
+
+[deps]
+
+source_file="res://music/ld51-1.ogg"
+dest_files=[ "res://.import/ld51-1.ogg-d230744beee3756fa4e107927f77b124.oggstr" ]
+
+[params]
+
+loop=true
+loop_offset=0

BIN
music/ld51-2.ogg


+ 15 - 0
music/ld51-2.ogg.import

@@ -0,0 +1,15 @@
+[remap]
+
+importer="ogg_vorbis"
+type="AudioStreamOGGVorbis"
+path="res://.import/ld51-2.ogg-1ce149513b1d711b92893cbd57c3950f.oggstr"
+
+[deps]
+
+source_file="res://music/ld51-2.ogg"
+dest_files=[ "res://.import/ld51-2.ogg-1ce149513b1d711b92893cbd57c3950f.oggstr" ]
+
+[params]
+
+loop=true
+loop_offset=0

BIN
music/ld51-3.ogg


+ 15 - 0
music/ld51-3.ogg.import

@@ -0,0 +1,15 @@
+[remap]
+
+importer="ogg_vorbis"
+type="AudioStreamOGGVorbis"
+path="res://.import/ld51-3.ogg-c71dd7350a4f28de31119961696748cc.oggstr"
+
+[deps]
+
+source_file="res://music/ld51-3.ogg"
+dest_files=[ "res://.import/ld51-3.ogg-c71dd7350a4f28de31119961696748cc.oggstr" ]
+
+[params]
+
+loop=true
+loop_offset=0

BIN
music/ld51-4.ogg


+ 15 - 0
music/ld51-4.ogg.import

@@ -0,0 +1,15 @@
+[remap]
+
+importer="ogg_vorbis"
+type="AudioStreamOGGVorbis"
+path="res://.import/ld51-4.ogg-56b6590c0ddce5830710cf0f94f56ac0.oggstr"
+
+[deps]
+
+source_file="res://music/ld51-4.ogg"
+dest_files=[ "res://.import/ld51-4.ogg-56b6590c0ddce5830710cf0f94f56ac0.oggstr" ]
+
+[params]
+
+loop=true
+loop_offset=0

BIN
music/ld51-intro.ogg


+ 15 - 0
music/ld51-intro.ogg.import

@@ -0,0 +1,15 @@
+[remap]
+
+importer="ogg_vorbis"
+type="AudioStreamOGGVorbis"
+path="res://.import/ld51-intro.ogg-f1b9c8b30ce579ced591e3bf9851dcf4.oggstr"
+
+[deps]
+
+source_file="res://music/ld51-intro.ogg"
+dest_files=[ "res://.import/ld51-intro.ogg-f1b9c8b30ce579ced591e3bf9851dcf4.oggstr" ]
+
+[params]
+
+loop=false
+loop_offset=0

BIN
music/rain_inside.ogg


+ 15 - 0
music/rain_inside.ogg.import

@@ -0,0 +1,15 @@
+[remap]
+
+importer="ogg_vorbis"
+type="AudioStreamOGGVorbis"
+path="res://.import/rain_inside.ogg-555a3420ba5726792a973ea7f243e259.oggstr"
+
+[deps]
+
+source_file="res://music/rain_inside.ogg"
+dest_files=[ "res://.import/rain_inside.ogg-555a3420ba5726792a973ea7f243e259.oggstr" ]
+
+[params]
+
+loop=true
+loop_offset=0

BIN
music/rain_outside4.ogg


+ 15 - 0
music/rain_outside4.ogg.import

@@ -0,0 +1,15 @@
+[remap]
+
+importer="ogg_vorbis"
+type="AudioStreamOGGVorbis"
+path="res://.import/rain_outside4.ogg-ebc2c7bac038797f1a99f3f83b2e4203.oggstr"
+
+[deps]
+
+source_file="res://music/rain_outside4.ogg"
+dest_files=[ "res://.import/rain_outside4.ogg-ebc2c7bac038797f1a99f3f83b2e4203.oggstr" ]
+
+[params]
+
+loop=true
+loop_offset=0

+ 31 - 0
plan.txt

@@ -0,0 +1,31 @@
+every 10 seconds
+
+use it or lose it
+
+parasite
+
+split
+
+mutations
+
+corruption
+
+keep it ~~alive~~moving
+
+harvest
+
+side effect
+
+nothing is permanent
+
+overgrown
+
+ascend
+
+duplication
+
+shelter
+
+making connections
+
+you shouldn't mix those

+ 142 - 0
project.godot

@@ -0,0 +1,142 @@
+; Engine configuration file.
+; It's best edited using the editor UI and not directly,
+; since the parameters that go here are not all obvious.
+;
+; Format:
+;   [section] ; section goes between []
+;   param=value ; assign values to parameters
+
+config_version=4
+
+_global_script_classes=[ {
+"base": "KinematicBody2D",
+"class": "BaseMob",
+"language": "GDScript",
+"path": "res://script/BaseMob.gd"
+}, {
+"base": "BaseMob",
+"class": "Candle",
+"language": "GDScript",
+"path": "res://script/Candle.gd"
+}, {
+"base": "BaseMob",
+"class": "GirlMob",
+"language": "GDScript",
+"path": "res://script/GirlMob.gd"
+}, {
+"base": "GirlMob",
+"class": "GirlMobNPC",
+"language": "GDScript",
+"path": "res://script/GirlMobNPC.gd"
+}, {
+"base": "BaseMob",
+"class": "Mirror",
+"language": "GDScript",
+"path": "res://script/Mirror.gd"
+}, {
+"base": "GirlMob",
+"class": "Player",
+"language": "GDScript",
+"path": "res://script/Player.gd"
+}, {
+"base": "Area2D",
+"class": "Stairs",
+"language": "GDScript",
+"path": "res://script/Stairs.gd"
+} ]
+_global_script_class_icons={
+"BaseMob": "",
+"Candle": "",
+"GirlMob": "",
+"GirlMobNPC": "",
+"Mirror": "",
+"Player": "",
+"Stairs": ""
+}
+
+[application]
+
+config/name="ld51"
+run/main_scene="res://scene/Root.tscn"
+config/icon="res://icon.png"
+
+[debug]
+
+settings/stdout/print_fps=true
+
+[display]
+
+window/size/width=300
+window/size/height=200
+window/size/test_width=900
+window/size/test_height=600
+window/vsync/use_vsync=false
+window/stretch/mode="viewport"
+window/stretch/aspect="keep"
+
+[global]
+
+window=false
+
+[gui]
+
+common/drop_mouse_on_gui_input_disabled=true
+
+[input]
+
+move_left={
+"deadzone": 0.5,
+"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":0,"physical_scancode":65,"unicode":0,"echo":false,"script":null)
+, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":0,"physical_scancode":16777231,"unicode":0,"echo":false,"script":null)
+ ]
+}
+move_right={
+"deadzone": 0.5,
+"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":0,"physical_scancode":68,"unicode":0,"echo":false,"script":null)
+, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":0,"physical_scancode":16777233,"unicode":0,"echo":false,"script":null)
+ ]
+}
+move_up={
+"deadzone": 0.5,
+"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":0,"physical_scancode":87,"unicode":0,"echo":false,"script":null)
+, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":0,"physical_scancode":16777232,"unicode":0,"echo":false,"script":null)
+, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":0,"physical_scancode":32,"unicode":0,"echo":false,"script":null)
+ ]
+}
+restart={
+"deadzone": 0.5,
+"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":0,"physical_scancode":82,"unicode":0,"echo":false,"script":null)
+ ]
+}
+fast_forward={
+"deadzone": 0.5,
+"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":0,"physical_scancode":83,"unicode":0,"echo":false,"script":null)
+, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":0,"physical_scancode":16777234,"unicode":0,"echo":false,"script":null)
+ ]
+}
+necklace={
+"deadzone": 0.5,
+"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":78,"physical_scancode":0,"unicode":0,"echo":false,"script":null)
+ ]
+}
+sprint={
+"deadzone": 0.5,
+"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":0,"physical_scancode":70,"unicode":0,"echo":false,"script":null)
+ ]
+}
+
+[physics]
+
+common/enable_pause_aware_picking=true
+
+[rendering]
+
+quality/intended_usage/framebuffer_allocation=0
+quality/intended_usage/framebuffer_allocation.mobile=0
+2d/snapping/use_gpu_pixel_snap=true
+threads/thread_model=2
+quality/filters/anisotropic_filter_level=1
+2d/options/ninepatch_mode=0
+environment/default_clear_color=Color( 0.133333, 0.133333, 0.133333, 1 )
+environment/default_environment="res://default_env.tres"
+quality/dynamic_fonts/use_oversampling=false

+ 37 - 0
scene/Candle.tscn

@@ -0,0 +1,37 @@
+[gd_scene load_steps=6 format=2]
+
+[ext_resource path="res://script/Candle.gd" type="Script" id=1]
+[ext_resource path="res://asset/candle_sheet.png" type="Texture" id=2]
+[ext_resource path="res://asset/candle_n.png" type="Texture" id=3]
+[ext_resource path="res://sfx/fire.ogg" type="AudioStream" id=4]
+[ext_resource path="res://asset/radial.png" type="Texture" id=5]
+
+[node name="Candle" type="KinematicBody2D"]
+collision_layer = 3
+collision/safe_margin = 0.1
+script = ExtResource( 1 )
+
+[node name="Body" type="Sprite" parent="."]
+texture = ExtResource( 2 )
+normal_map = ExtResource( 3 )
+region_enabled = true
+region_rect = Rect2( 0, 0, 32, 48 )
+
+[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="."]
+polygon = PoolVector2Array( 5, 2, 12, 2, 11, 4, 5, 5, 3, 9, 7, 14, 7, 19, 5, 20, 6, 21, 9.2, 23.9, -8, 24, -5, 21, -4, 20, -6, 19, -6, 14, -2, 9, -4, 5, -10, 4, -11, 2, -4, 2, -4, -5, 5, -5 )
+
+[node name="RespawnPoint" type="Node2D" parent="."]
+
+[node name="Timer" type="Timer" parent="."]
+wait_time = 0.5
+
+[node name="AudioStreamPlayer2D" type="AudioStreamPlayer2D" parent="."]
+stream = ExtResource( 4 )
+max_distance = 1000.0
+attenuation = 12.1257
+
+[node name="Light2D" type="Light2D" parent="."]
+texture = ExtResource( 5 )
+color = Color( 1, 0.866667, 0, 1 )
+
+[connection signal="timeout" from="Timer" to="." method="next_frame"]

+ 123 - 0
scene/GirlMob.tscn

@@ -0,0 +1,123 @@
+[gd_scene load_steps=18 format=2]
+
+[ext_resource path="res://asset/body.tres" type="SpriteFrames" id=1]
+[ext_resource path="res://script/Boots.gd" type="Script" id=2]
+[ext_resource path="res://asset/hair_brown.tres" type="SpriteFrames" id=3]
+[ext_resource path="res://asset/lady2-Boots.png" type="Texture" id=4]
+[ext_resource path="res://script/Body.gd" type="Script" id=5]
+[ext_resource path="res://script/GirlMobNPC.gd" type="Script" id=6]
+[ext_resource path="res://script/Hair.gd" type="Script" id=7]
+[ext_resource path="res://scene/JumpCollider.tscn" type="PackedScene" id=8]
+[ext_resource path="res://scene/StairCollider.tscn" type="PackedScene" id=9]
+[ext_resource path="res://scene/Walker.tscn" type="PackedScene" id=10]
+
+[sub_resource type="AtlasTexture" id=2]
+atlas = ExtResource( 4 )
+region = Rect2( 32, 0, 32, 33 )
+
+[sub_resource type="AtlasTexture" id=3]
+atlas = ExtResource( 4 )
+region = Rect2( 64, 0, 32, 33 )
+
+[sub_resource type="AtlasTexture" id=1]
+atlas = ExtResource( 4 )
+region = Rect2( 0, 0, 32, 33 )
+
+[sub_resource type="SpriteFrames" id=4]
+animations = [ {
+"frames": [ SubResource( 2 ), SubResource( 3 ), SubResource( 1 ) ],
+"loop": true,
+"name": "default",
+"speed": 12.0
+} ]
+
+[sub_resource type="RectangleShape2D" id=21]
+resource_local_to_scene = true
+extents = Vector2( 3, 8 )
+
+[sub_resource type="RectangleShape2D" id=22]
+extents = Vector2( 8, 8 )
+
+[sub_resource type="RectangleShape2D" id=23]
+extents = Vector2( 12, 18.5 )
+
+[node name="GirlMob" type="KinematicBody2D"]
+collision_layer = 3
+collision/safe_margin = 0.1
+script = ExtResource( 6 )
+
+[node name="Walker" parent="." instance=ExtResource( 10 )]
+
+[node name="Boots" type="AnimatedSprite" parent="."]
+frames = SubResource( 4 )
+frame = 2
+flip_h = true
+script = ExtResource( 2 )
+
+[node name="Body" type="AnimatedSprite" parent="."]
+frames = ExtResource( 1 )
+frame = 2
+playing = true
+flip_h = true
+script = ExtResource( 5 )
+
+[node name="Hair" type="AnimatedSprite" parent="."]
+frames = ExtResource( 3 )
+frame = 2
+playing = true
+flip_h = true
+script = ExtResource( 7 )
+
+[node name="CollisionTorso" type="CollisionShape2D" parent="."]
+position = Vector2( 0, 8 )
+shape = SubResource( 21 )
+
+[node name="CollisionHead" type="CollisionShape2D" parent="."]
+position = Vector2( 0, -6 )
+rotation = -1.5708
+shape = SubResource( 22 )
+
+[node name="JustFallenTimer" type="Timer" parent="."]
+wait_time = 0.5
+one_shot = true
+
+[node name="JumpGraceTimer" type="Timer" parent="."]
+wait_time = 0.4
+one_shot = true
+
+[node name="JustJumpedTimer" type="Timer" parent="."]
+wait_time = 0.3
+one_shot = true
+
+[node name="StairColliderL" parent="." instance=ExtResource( 9 )]
+position = Vector2( -4, 17 )
+
+[node name="StairColliderR" parent="." instance=ExtResource( 9 )]
+position = Vector2( 4, 17 )
+
+[node name="JumpColliderG" parent="." instance=ExtResource( 8 )]
+position = Vector2( 19, 19 )
+
+[node name="JumpColliderB" parent="." instance=ExtResource( 8 )]
+position = Vector2( 19, 19 )
+
+[node name="StairColliderJCB" parent="." instance=ExtResource( 9 )]
+position = Vector2( 19, 19 )
+
+[node name="ColliderLine" type="Line2D" parent="."]
+points = PoolVector2Array( -25, 3, 30, 4 )
+width = 3.0
+default_color = Color( 0.635294, 0, 0.537255, 1 )
+
+[node name="Thorns" type="Area2D" parent="."]
+collision_layer = 16
+collision_mask = 16
+
+[node name="CollisionShape2D" type="CollisionShape2D" parent="Thorns"]
+position = Vector2( 0, 0.5 )
+shape = SubResource( 23 )
+
+[connection signal="frame_changed" from="Boots" to="Boots" method="_on_frame_changed"]
+[connection signal="animation_finished" from="Body" to="Body" method="_on_animation_finished"]
+[connection signal="animation_finished" from="Hair" to="Hair" method="_on_animation_finished"]
+[connection signal="body_entered" from="Thorns" to="." method="_kill_the_player"]

+ 9 - 0
scene/JumpCollider.tscn

@@ -0,0 +1,9 @@
+[gd_scene load_steps=2 format=2]
+
+[sub_resource type="RectangleShape2D" id=1]
+extents = Vector2( 0.5, 0.5 )
+
+[node name="JumpCollider" type="Area2D"]
+
+[node name="CollisionShape" type="CollisionShape2D" parent="."]
+shape = SubResource( 1 )

+ 34 - 0
scene/Mirror.tscn

@@ -0,0 +1,34 @@
+[gd_scene load_steps=5 format=2]
+
+[ext_resource path="res://asset/mirror.png" type="Texture" id=1]
+[ext_resource path="res://script/Mirror.gd" type="Script" id=2]
+[ext_resource path="res://vo/why.wav" type="AudioStream" id=3]
+
+[sub_resource type="RectangleShape2D" id=1]
+extents = Vector2( 12, 16 )
+
+[node name="Mirror" type="KinematicBody2D"]
+collision_layer = 3
+collision/safe_margin = 0.1
+script = ExtResource( 2 )
+
+[node name="Body" type="Sprite" parent="."]
+texture = ExtResource( 1 )
+region_rect = Rect2( 0, 0, 32, 48 )
+
+[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
+shape = SubResource( 1 )
+
+[node name="Timer" type="Timer" parent="."]
+wait_time = 6.0
+
+[node name="Timer2" type="Timer" parent="."]
+wait_time = 2.0
+one_shot = true
+
+[node name="AudioStreamPlayer" type="AudioStreamPlayer" parent="."]
+stream = ExtResource( 3 )
+bus = "Reverb"
+
+[connection signal="timeout" from="Timer" to="." method="_on_Timer_timeout"]
+[connection signal="timeout" from="Timer2" to="." method="_on_Timer2_timeout" flags=6]

+ 43 - 0
scene/MusicPlayer.tscn

@@ -0,0 +1,43 @@
+[gd_scene load_steps=8 format=2]
+
+[ext_resource path="res://music/ld51-2.ogg" type="AudioStream" id=1]
+[ext_resource path="res://music/ld51-1.ogg" type="AudioStream" id=2]
+[ext_resource path="res://music/ld51-3.ogg" type="AudioStream" id=3]
+[ext_resource path="res://music/ld51-4.ogg" type="AudioStream" id=4]
+[ext_resource path="res://music/ld51-intro.ogg" type="AudioStream" id=5]
+[ext_resource path="res://music/rain_outside4.ogg" type="AudioStream" id=6]
+[ext_resource path="res://script/MusicPlayer.gd" type="Script" id=7]
+
+[node name="MusicPlayer" type="Node2D"]
+script = ExtResource( 7 )
+
+[node name="L0" type="AudioStreamPlayer" parent="."]
+stream = ExtResource( 5 )
+bus = "Music"
+
+[node name="L1" type="AudioStreamPlayer" parent="."]
+stream = ExtResource( 2 )
+bus = "Music"
+
+[node name="L2" type="AudioStreamPlayer" parent="."]
+stream = ExtResource( 1 )
+bus = "Music"
+
+[node name="L3" type="AudioStreamPlayer" parent="."]
+stream = ExtResource( 3 )
+bus = "Music"
+
+[node name="Kick" type="AudioStreamPlayer" parent="."]
+stream = ExtResource( 4 )
+volume_db = -80.0
+bus = "Music"
+
+[node name="Rain" type="AudioStreamPlayer" parent="."]
+stream = ExtResource( 6 )
+bus = "Music"
+
+[node name="FadeIn" type="Timer" parent="."]
+one_shot = true
+
+[connection signal="finished" from="L0" to="." method="_on_L0_finished"]
+[connection signal="timeout" from="FadeIn" to="." method="_on_FadeIn_timeout"]

+ 138 - 0
scene/Player.tscn

@@ -0,0 +1,138 @@
+[gd_scene load_steps=22 format=2]
+
+[ext_resource path="res://asset/body.tres" type="SpriteFrames" id=1]
+[ext_resource path="res://script/Boots.gd" type="Script" id=2]
+[ext_resource path="res://asset/lady2-Hair.png" type="Texture" id=3]
+[ext_resource path="res://asset/lady2-Boots.png" type="Texture" id=4]
+[ext_resource path="res://script/Body.gd" type="Script" id=5]
+[ext_resource path="res://script/Player.gd" type="Script" id=6]
+[ext_resource path="res://script/Hair.gd" type="Script" id=7]
+[ext_resource path="res://asset/radial.png" type="Texture" id=8]
+[ext_resource path="res://scene/StairCollider.tscn" type="PackedScene" id=9]
+[ext_resource path="res://scene/Walker.tscn" type="PackedScene" id=10]
+
+[sub_resource type="AtlasTexture" id=2]
+atlas = ExtResource( 4 )
+region = Rect2( 32, 0, 32, 33 )
+
+[sub_resource type="AtlasTexture" id=3]
+atlas = ExtResource( 4 )
+region = Rect2( 64, 0, 32, 33 )
+
+[sub_resource type="AtlasTexture" id=1]
+atlas = ExtResource( 4 )
+region = Rect2( 0, 0, 32, 33 )
+
+[sub_resource type="SpriteFrames" id=4]
+animations = [ {
+"frames": [ SubResource( 2 ), SubResource( 3 ), SubResource( 1 ) ],
+"loop": true,
+"name": "default",
+"speed": 12.0
+} ]
+
+[sub_resource type="AtlasTexture" id=10]
+atlas = ExtResource( 3 )
+region = Rect2( 0, 0, 32, 33 )
+
+[sub_resource type="AtlasTexture" id=11]
+atlas = ExtResource( 3 )
+region = Rect2( 32, 0, 32, 33 )
+
+[sub_resource type="AtlasTexture" id=12]
+atlas = ExtResource( 3 )
+region = Rect2( 64, 0, 32, 33 )
+
+[sub_resource type="AtlasTexture" id=13]
+atlas = ExtResource( 3 )
+region = Rect2( 96, 0, 32, 33 )
+
+[sub_resource type="SpriteFrames" id=14]
+animations = [ {
+"frames": [ SubResource( 10 ), SubResource( 11 ), SubResource( 12 ), SubResource( 13 ) ],
+"loop": true,
+"name": "default",
+"speed": 5.0
+} ]
+
+[sub_resource type="RectangleShape2D" id=15]
+extents = Vector2( 3, 8 )
+
+[sub_resource type="RectangleShape2D" id=16]
+extents = Vector2( 8, 8 )
+
+[node name="Player" type="KinematicBody2D"]
+collision/safe_margin = 0.05
+script = ExtResource( 6 )
+
+[node name="Walker" parent="." instance=ExtResource( 10 )]
+
+[node name="Boots" type="AnimatedSprite" parent="."]
+frames = SubResource( 4 )
+frame = 2
+flip_h = true
+script = ExtResource( 2 )
+
+[node name="Body" type="AnimatedSprite" parent="."]
+frames = ExtResource( 1 )
+frame = 2
+playing = true
+flip_h = true
+script = ExtResource( 5 )
+
+[node name="Hair" type="AnimatedSprite" parent="."]
+frames = SubResource( 14 )
+frame = 3
+playing = true
+flip_h = true
+script = ExtResource( 7 )
+
+[node name="CollisionTorso" type="CollisionShape2D" parent="."]
+position = Vector2( 0, 8 )
+shape = SubResource( 15 )
+
+[node name="CollisionHead" type="CollisionShape2D" parent="."]
+position = Vector2( 0, -6 )
+rotation = -1.5708
+shape = SubResource( 16 )
+
+[node name="JumpGraceTimer" type="Timer" parent="."]
+wait_time = 0.4
+one_shot = true
+
+[node name="JustJumpedTimer" type="Timer" parent="."]
+wait_time = 0.3
+one_shot = true
+
+[node name="JustFallenTimer" type="Timer" parent="."]
+wait_time = 0.5
+one_shot = true
+
+[node name="NecklaceLight" type="Light2D" parent="."]
+position = Vector2( 0, 6 )
+texture = ExtResource( 8 )
+texture_scale = 0.2
+color = Color( 1, 0, 0, 1 )
+energy = 0.0
+shadow_enabled = true
+
+[node name="LightningRay" type="RayCast2D" parent="."]
+position = Vector2( 0, 4 )
+enabled = true
+cast_to = Vector2( 150, 0 )
+collision_mask = 2
+
+[node name="StairColliderL" parent="." instance=ExtResource( 9 )]
+position = Vector2( -4, 17 )
+
+[node name="StairColliderR" parent="." instance=ExtResource( 9 )]
+position = Vector2( 4, 17 )
+
+[node name="Timer" type="Timer" parent="."]
+wait_time = 4.0
+one_shot = true
+
+[connection signal="frame_changed" from="Boots" to="Boots" method="_on_frame_changed"]
+[connection signal="animation_finished" from="Body" to="Body" method="_on_animation_finished"]
+[connection signal="animation_finished" from="Hair" to="Hair" method="_on_animation_finished"]
+[connection signal="timeout" from="Timer" to="." method="go_inside" flags=6]

+ 94 - 0
scene/Root.tscn

@@ -0,0 +1,94 @@
+[gd_scene load_steps=10 format=2]
+
+[ext_resource path="res://scene/World.tscn" type="PackedScene" id=1]
+[ext_resource path="res://asset/Font.tres" type="DynamicFont" id=2]
+[ext_resource path="res://scene/MusicPlayer.tscn" type="PackedScene" id=3]
+[ext_resource path="res://asset/LiberationSans-Regular.ttf" type="DynamicFontData" id=4]
+[ext_resource path="res://asset/logo.png" type="Texture" id=5]
+[ext_resource path="res://asset/black.png" type="Texture" id=6]
+[ext_resource path="res://asset/logo2.png" type="Texture" id=7]
+
+[sub_resource type="GDScript" id=2]
+script/source = "extends VSlider
+
+func _on_value_changed(value):
+	AudioServer.set_bus_volume_db(0, -(100.0 - value) / 1.5)
+"
+
+[sub_resource type="DynamicFont" id=1]
+size = 12
+outline_size = 2
+outline_color = Color( 0.113725, 0.113725, 0.113725, 1 )
+font_data = ExtResource( 4 )
+
+[node name="Root" type="Control"]
+anchor_right = 1.0
+anchor_bottom = 1.0
+margin_left = 9.0
+margin_top = -2.0
+margin_right = 9.0
+margin_bottom = -2.0
+
+[node name="World" parent="." instance=ExtResource( 1 )]
+position = Vector2( -38, 17 )
+
+[node name="MusicPlayer" parent="." instance=ExtResource( 3 )]
+
+[node name="UI" type="CanvasLayer" parent="."]
+
+[node name="LightingTime" type="RichTextLabel" parent="UI"]
+visible = false
+anchor_left = 0.01
+anchor_right = 1.0
+margin_right = 2003.0
+margin_bottom = 1013.0
+rect_scale = Vector2( 0.02, 0.02 )
+custom_fonts/normal_font = ExtResource( 2 )
+bbcode_text = "9.99"
+text = "9.99"
+fit_content_height = true
+
+[node name="VSlider" type="VSlider" parent="UI"]
+margin_left = 283.0
+margin_top = 2.0
+margin_right = 299.0
+margin_bottom = 39.0
+value = 100.0
+script = SubResource( 2 )
+
+[node name="Logo" type="TextureRect" parent="UI"]
+visible = false
+margin_left = -17.0
+margin_right = 314.0
+margin_bottom = 200.0
+texture = ExtResource( 5 )
+
+[node name="Darkness" type="TextureRect" parent="UI"]
+visible = false
+margin_left = -17.0
+margin_right = 314.0
+margin_bottom = 200.0
+texture = ExtResource( 6 )
+
+[node name="Darkness2" type="TextureRect" parent="UI"]
+visible = false
+margin_left = -88.0
+margin_top = -43.0
+margin_right = 380.0
+margin_bottom = 240.0
+texture = ExtResource( 7 )
+
+[node name="Caption" type="RichTextLabel" parent="UI"]
+visible = false
+margin_top = 179.0
+margin_right = 300.0
+margin_bottom = 200.0
+grow_horizontal = 2
+grow_vertical = 2
+custom_fonts/normal_font = SubResource( 1 )
+bbcode_enabled = true
+bbcode_text = "[center]text[/center]"
+text = "text"
+fit_content_height = true
+
+[connection signal="value_changed" from="UI/VSlider" to="UI/VSlider" method="_on_value_changed"]

+ 11 - 0
scene/StairCollider.tscn

@@ -0,0 +1,11 @@
+[gd_scene load_steps=2 format=2]
+
+[sub_resource type="RectangleShape2D" id=1]
+extents = Vector2( 0.5, 0.5 )
+
+[node name="StairCollider" type="Area2D"]
+collision_layer = 8
+collision_mask = 8
+
+[node name="CollisionShape" type="CollisionShape2D" parent="."]
+shape = SubResource( 1 )

+ 11 - 0
scene/Stairs.tscn

@@ -0,0 +1,11 @@
+[gd_scene load_steps=2 format=2]
+
+[ext_resource path="res://script/Stairs.gd" type="Script" id=1]
+
+[node name="Stairs" type="Area2D"]
+collision_layer = 8
+collision_mask = 8
+script = ExtResource( 1 )
+
+[node name="CollisionShape" type="CollisionPolygon2D" parent="."]
+polygon = PoolVector2Array( 0, 0, -8, 0, -8, 8, 0, 8, 0, 32, 16, 48, 16, 16 )

+ 21 - 0
scene/VOPlayer.tscn

@@ -0,0 +1,21 @@
+[gd_scene load_steps=2 format=2]
+
+[ext_resource path="res://script/VOPlayer.gd" type="Script" id=1]
+
+[node name="VOPlayer" type="Area2D"]
+collision_layer = 16
+collision_mask = 16
+script = ExtResource( 1 )
+
+[node name="AudioStreamPlayer" type="AudioStreamPlayer" parent="."]
+
+[node name="AudioDelay" type="Timer" parent="."]
+one_shot = true
+
+[node name="LabelTime" type="Timer" parent="."]
+wait_time = 3.0
+one_shot = true
+
+[connection signal="body_entered" from="." to="." method="_on_body_entered" flags=6]
+[connection signal="timeout" from="AudioDelay" to="." method="_on_delay_timeout" flags=6]
+[connection signal="timeout" from="LabelTime" to="." method="_on_label_timeout" flags=6]

+ 18 - 0
scene/Walker.tscn

@@ -0,0 +1,18 @@
+[gd_scene load_steps=3 format=2]
+
+[ext_resource path="res://script/Walker.gd" type="Script" id=1]
+[ext_resource path="res://sfx/hop.wav" type="AudioStream" id=2]
+
+[node name="Walker" type="Node2D"]
+script = ExtResource( 1 )
+
+[node name="Hop" type="AudioStreamPlayer2D" parent="."]
+stream = ExtResource( 2 )
+volume_db = -10.242
+bus = "Reverb"
+
+[node name="Walk" type="AudioStreamPlayer2D" parent="."]
+volume_db = -15.841
+max_distance = 1000.0
+attenuation = 1.51572
+bus = "Reverb"

File diff suppressed because it is too large
+ 912 - 0
scene/World.tscn


+ 1 - 0
script.txt

@@ -0,0 +1 @@
+It had been a long journey when I finally laid my eyes upon the manor

+ 62 - 0
script/BaseMob.gd

@@ -0,0 +1,62 @@
+class_name BaseMob
+extends KinematicBody2D
+
+var gravity = 300.0
+export var speed = 10
+export var base_max_velocity = 100.0
+var max_velocity = 100.0
+var jump_strength = 0.65
+var jump_burst = 210.0
+var velocity = Vector2()
+var previous_real_velocity = Vector2()
+var real_velocity = Vector2()
+var lives = 1
+export var frozen = true
+
+func read_input(_delta):
+	pass
+
+func fundamental_forces(delta):
+	velocity.y += delta * gravity * 2
+	
+	if abs(velocity.x) > max_velocity:
+		velocity.x = sign(velocity.x) * max_velocity
+
+func apply_movement(_delta):
+	previous_real_velocity = real_velocity
+	real_velocity = move_and_slide(velocity, Vector2(0.0, -1.0))
+	
+func stairs(_delta):
+	pass
+	
+func post_movement(_delta):
+	pass
+	
+func animate(_delta):
+	pass
+	
+func finalize(_delta):
+	pass
+	
+func strike():
+	velocity = Vector2(0, 0)
+	
+func watch_for_death(delta):
+	if lives < 1:
+		set_scale(Vector2(1.0, get_scale().y - delta * 5.0))
+		frozen = true
+		if get_scale().y < 0.0:
+			queue_free()
+
+func _process(delta):
+	watch_for_death(delta)
+	if frozen:
+		return
+	if lives > 0:
+		read_input(delta)
+	fundamental_forces(delta)
+	stairs(delta)
+	apply_movement(delta)
+	post_movement(delta)
+	animate(delta)
+	finalize(delta)

+ 10 - 0
script/Body.gd

@@ -0,0 +1,10 @@
+extends AnimatedSprite
+
+func _physics_process(_delta):
+	var rand = rand_range(0.0, 1.0)
+	if !is_playing() and rand < 0.003333333:
+		play()
+
+func _on_animation_finished():
+	set_frame(0)
+	set_playing(false)

+ 31 - 0
script/Boots.gd

@@ -0,0 +1,31 @@
+extends AnimatedSprite
+
+onready var body: AnimatedSprite = $"../Body"
+onready var hair: AnimatedSprite = $"../Hair"
+onready var walker = $"../Walker"
+
+var changedOnce: bool = true
+var budge = true
+
+func _on_frame_changed():
+	if budge:
+		if frame == 2:
+			hair.set_position(Vector2(0, 0))
+			body.set_position(Vector2(0, 0))
+		elif frame == 0:
+			hair.set_position(Vector2(0, 1))
+			body.set_position(Vector2(0, 1))
+	else:
+		hair.set_position(Vector2(0, 1))
+		body.set_position(Vector2(0, 1))
+	if frame == 0:
+		walker.step()
+
+func play(var anim: String = "", var backwards: bool = false):
+	if !is_playing():
+		frame = 0
+	.play(anim, backwards)
+
+func stop():
+	frame = 2
+	.stop()

+ 21 - 0
script/Camera2D.gd

@@ -0,0 +1,21 @@
+extends Camera2D
+signal triggered
+
+onready var player = $"../Player"
+
+func fix_camera():
+	if player.lives > 0:
+		var diff = player.position - get_camera_position()
+		while diff.x > 250.0:
+			move_local_x(200)
+			diff.x -= 200
+		while diff.x < 50.0:
+			move_local_x(-200)
+			diff.x += 200
+		while diff.y > 160:
+			move_local_y(150)
+			diff.y -= 150
+		while diff.y < 0:
+			move_local_y(-150)
+			diff.y += 150
+		emit_signal("triggered")

+ 35 - 0
script/Candle.gd

@@ -0,0 +1,35 @@
+class_name Candle
+extends BaseMob
+
+onready var body: Sprite = $Body
+onready var respawn_point = $RespawnPoint
+onready var timer = $Timer
+export var respawn_x: int = 48
+export var respawn_y: int = 0
+export var respawn2_x: int = 0
+export var respawn2_y: int = 0
+var burning: bool = false
+var time = 0.0
+var frame = 0
+
+func _ready():
+	lives = 99999
+	respawn_point.set_position(Vector2(respawn_x, respawn_y))
+	#respawn_point.move_local_x(respawn_x)
+	#respawn_point.move_local_y(respawn_y)
+
+func strike():
+	timer.start()
+	frame = 1
+	$AudioStreamPlayer2D.play()
+	
+func next_frame():
+	frame += 1
+	if frame > 6:
+		frame = 1
+	var rect = body.get_region_rect()
+	rect.position.x = frame * 32
+	body.set_region_rect(rect)
+
+func _reprogram(_body):
+	respawn_point.set_position(Vector2(respawn2_x, respawn2_y))

+ 123 - 0
script/GirlMob.gd

@@ -0,0 +1,123 @@
+class_name GirlMob
+extends BaseMob
+
+const DEBUG = false
+
+onready var jump_grace_timer = $"JumpGraceTimer" 
+onready var boots = $"Boots"
+onready var hair = $"Hair"
+onready var body = $"Body"
+onready var just_fallen_timer = $"JustFallenTimer"
+onready var just_jumped_timer = $"JustJumpedTimer"
+var lightning
+var sprite_direction: bool = true
+var timer_stair = 0.0
+var walking_up = false
+var walking_down = false
+export var start_flipped = false
+var jumping_p1 = false
+var jumping_p2 = false
+var outside_the_building = false
+
+var navmap
+
+onready var stair_collider_down = $"StairColliderL"
+onready var stair_collider_up = $"StairColliderR"
+onready var walker = $Walker
+
+func _ready(): 
+	flip(start_flipped)
+
+func flip(toggle: bool):
+	boots.set_flip_h(toggle)
+	hair.set_flip_h(toggle)
+	body.set_flip_h(toggle)
+	if toggle:
+		stair_collider_down.set_position(Vector2(3, 27))
+		stair_collider_up.set_position(Vector2(10, 14))
+	else:
+		stair_collider_down.set_position(Vector2(-3, 27))
+		stair_collider_up.set_position(Vector2(-10, 14))
+	sprite_direction = toggle
+	
+func animate(_delta):
+	if abs(real_velocity.y) < 0.0001:
+		if previous_real_velocity.y > 0.0:
+			just_fallen_timer.start()
+
+	if (abs(real_velocity.x) > 0.01 and abs(real_velocity.y) < 0.01) or walking_up or walking_down:
+		boots.play()
+	else:
+		boots.stop()
+		
+	hair.speed_scale = 0.2 + (abs(real_velocity.x) + abs(real_velocity.y)) / 80.0
+	if !just_fallen_timer.is_stopped():
+		hair.speed_scale += just_fallen_timer.time_left * 10.0
+	if outside_the_building:
+		hair.speed_scale += 4
+
+func strike():
+	.strike()
+	lives -= 1
+	boots.stop()
+	#hair.stop()
+	#body.stop()
+	walker.stop_all()
+	
+func post_movement(_delta):
+	if frozen:
+		return
+	if real_velocity.y > 0:
+		if jumping_p1:
+			jumping_p1 = false
+			jumping_p2 = true
+	
+	if abs(real_velocity.y) < 0.0001:
+		if jump_grace_timer.is_stopped():
+			velocity.y = 0
+			jumping_p1 = false
+			jumping_p2 = false
+		else:
+			if !jumping_p1 and !jumping_p2:
+				velocity.y = -jump_burst
+				jump_grace_timer.stop()
+				just_jumped_timer.start()
+				if !outside_the_building:
+					walker.hop()
+				jumping_p1 = true
+
+func stairs(delta):
+	walking_up = false
+	max_velocity = base_max_velocity
+	gravity = 300.0
+	walking_down = false
+	
+	if abs(velocity.x) > 0 and !jumping_p1 and !jumping_p2 and jump_grace_timer.is_stopped():
+		if stair_collider_up.get_overlapping_areas().size() > 0:
+			timer_stair += delta / 2.0
+			walking_up = true
+			if timer_stair > 0.1:
+				timer_stair = 0.0
+				move_local_y(-8.0)
+		else:
+			walking_up = false
+		
+		if just_jumped_timer.is_stopped() and stair_collider_down.get_overlapping_areas().size() > 0 and not stair_collider_up.get_overlapping_areas().size() > 0:
+			max_velocity = base_max_velocity / 2.0
+			gravity = 9600.0
+			walking_down = true
+		else:
+			max_velocity = base_max_velocity
+			gravity = 300.0
+			walking_down = false
+
+	if walking_up or walking_down:
+		boots.budge = false
+	else:
+		boots.budge = true
+
+func _unfreeze(_body):
+	frozen = false
+
+func _unflip(_body):
+	flip(false)

+ 93 - 0
script/GirlMobNPC.gd

@@ -0,0 +1,93 @@
+class_name GirlMobNPC
+extends GirlMob
+
+onready var player = $"../../Player"
+onready var jump_collider_ground = $"JumpColliderG"
+onready var jump_collider_block = $"JumpColliderB"
+onready var jump_collider_block_stair = $"StairColliderJCB"
+onready var collider_line = $"ColliderLine"
+export var alternate_hair: bool = false
+var timer = 0.0
+
+func flip(toggle: bool):
+	.flip(toggle)
+	if jump_collider_ground != null:
+		if toggle:
+			jump_collider_ground.set_position(Vector2(12, 24))
+			jump_collider_block.set_position(Vector2(32, 0))
+			jump_collider_block_stair.set_position(Vector2(32, 0))
+		else:
+			jump_collider_ground.set_position(Vector2(-12, 24))
+			jump_collider_block.set_position(Vector2(-32, 0))
+			jump_collider_block_stair.set_position(Vector2(-32, 0))
+
+func _ready():
+	lightning = $"../../Lightning"
+	navmap  = get_world_2d().get_navigation_map()
+	collider_line.set_visible(false)
+	if alternate_hair:
+		hair.set_sprite_frames(preload("res://asset/hair_black.tres"))
+	jump_burst *= 1.5
+	frozen = true
+
+func _physics_process(delta: float):
+	timer += delta
+	
+	if timer < 0.168:
+		pass
+		#return
+	else:
+		timer = 0.0
+	
+	if frozen:
+		return
+
+	var pathx = Navigation2DServer.map_get_path(
+		navmap, 
+		get_position(), 
+		player.get_position(), 
+		false)
+	
+	if pathx.size() < 2:
+		return
+	
+	var path
+	var used_next = false
+	if pathx.size() < 3 or abs(position.x - pathx[1].x) > 50.0:
+		path = pathx[1]
+	else:
+		path = pathx[2]
+		used_next = true
+	
+	if abs(position.x - path.x) < 5.0 and used_next:
+		jump_grace_timer.start()
+	
+	if DEBUG:
+		collider_line.clear_points()
+		for point in pathx:
+			collider_line.add_point(point - get_position())
+		collider_line.set_visible(true)
+	
+	if path.x > position.x:
+		velocity.x += speed
+		flip(true)
+	else:
+		velocity.x -= speed
+		flip(false)
+	
+	if abs(real_velocity.y) < 0.01:
+		if jump_collider_ground.get_overlapping_bodies().size() == 0:
+			jump_grace_timer.start()
+		if jump_collider_block.get_overlapping_bodies().size() == 1 and\
+		   jump_collider_block_stair.get_overlapping_areas().size() == 0 and\
+		   stair_collider_up.get_overlapping_areas().size() == 0 and\
+		   stair_collider_down.get_overlapping_areas().size() == 0:
+			jump_grace_timer.start()
+	#print(str(get_position()) + " " + str(navigation_agent.get_next_location()))
+
+
+func _kill_the_player(_body):
+	if !frozen:
+		player.lives -= 1
+		frozen = true
+		lightning.play()

+ 0 - 0
script/Hair.gd


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