diff --git a/audio/sounds/msx_fuck.ogg b/audio/sounds/msx_fuck.ogg new file mode 100644 index 0000000..181ef9b Binary files /dev/null and b/audio/sounds/msx_fuck.ogg differ diff --git a/audio/sounds/msx_fuck.ogg.import b/audio/sounds/msx_fuck.ogg.import new file mode 100644 index 0000000..0fd793c --- /dev/null +++ b/audio/sounds/msx_fuck.ogg.import @@ -0,0 +1,15 @@ +[remap] + +importer="ogg_vorbis" +type="AudioStreamOGGVorbis" +path="res://.import/msx_fuck.ogg-b937a7a23918372fa013f112150257cc.oggstr" + +[deps] + +source_file="res://audio/sounds/msx_fuck.ogg" +dest_files=[ "res://.import/msx_fuck.ogg-b937a7a23918372fa013f112150257cc.oggstr" ] + +[params] + +loop=false +loop_offset=0 diff --git a/audio/sounds/msx_fucking_cop.ogg b/audio/sounds/msx_fucking_cop.ogg new file mode 100644 index 0000000..b4b2e75 Binary files /dev/null and b/audio/sounds/msx_fucking_cop.ogg differ diff --git a/audio/sounds/msx_fucking_cop.ogg.import b/audio/sounds/msx_fucking_cop.ogg.import new file mode 100644 index 0000000..3d67423 --- /dev/null +++ b/audio/sounds/msx_fucking_cop.ogg.import @@ -0,0 +1,15 @@ +[remap] + +importer="ogg_vorbis" +type="AudioStreamOGGVorbis" +path="res://.import/msx_fucking_cop.ogg-c49ee106151ffaa154ca9906a47e988e.oggstr" + +[deps] + +source_file="res://audio/sounds/msx_fucking_cop.ogg" +dest_files=[ "res://.import/msx_fucking_cop.ogg-c49ee106151ffaa154ca9906a47e988e.oggstr" ] + +[params] + +loop=false +loop_offset=0 diff --git a/audio/sounds/msx_goddammit.ogg b/audio/sounds/msx_goddammit.ogg new file mode 100644 index 0000000..455538d Binary files /dev/null and b/audio/sounds/msx_goddammit.ogg differ diff --git a/audio/sounds/msx_goddammit.ogg.import b/audio/sounds/msx_goddammit.ogg.import new file mode 100644 index 0000000..cd09e60 --- /dev/null +++ b/audio/sounds/msx_goddammit.ogg.import @@ -0,0 +1,15 @@ +[remap] + +importer="ogg_vorbis" +type="AudioStreamOGGVorbis" +path="res://.import/msx_goddammit.ogg-c739df3b80e1e6f3d11b4b46346a1e24.oggstr" + +[deps] + +source_file="res://audio/sounds/msx_goddammit.ogg" +dest_files=[ "res://.import/msx_goddammit.ogg-c739df3b80e1e6f3d11b4b46346a1e24.oggstr" ] + +[params] + +loop=false +loop_offset=0 diff --git a/audio/sounds/msx_motherfucker.ogg b/audio/sounds/msx_motherfucker.ogg new file mode 100644 index 0000000..9282a83 Binary files /dev/null and b/audio/sounds/msx_motherfucker.ogg differ diff --git a/audio/sounds/msx_motherfucker.ogg.import b/audio/sounds/msx_motherfucker.ogg.import new file mode 100644 index 0000000..6b08d5d --- /dev/null +++ b/audio/sounds/msx_motherfucker.ogg.import @@ -0,0 +1,15 @@ +[remap] + +importer="ogg_vorbis" +type="AudioStreamOGGVorbis" +path="res://.import/msx_motherfucker.ogg-5f106872c86ed2489eea974b997c9324.oggstr" + +[deps] + +source_file="res://audio/sounds/msx_motherfucker.ogg" +dest_files=[ "res://.import/msx_motherfucker.ogg-5f106872c86ed2489eea974b997c9324.oggstr" ] + +[params] + +loop=false +loop_offset=0 diff --git a/audio/sounds/msx_shit.ogg b/audio/sounds/msx_shit.ogg new file mode 100644 index 0000000..858e52f Binary files /dev/null and b/audio/sounds/msx_shit.ogg differ diff --git a/audio/sounds/msx_shit.ogg.import b/audio/sounds/msx_shit.ogg.import new file mode 100644 index 0000000..b8f02c3 --- /dev/null +++ b/audio/sounds/msx_shit.ogg.import @@ -0,0 +1,15 @@ +[remap] + +importer="ogg_vorbis" +type="AudioStreamOGGVorbis" +path="res://.import/msx_shit.ogg-3239485c047eb643ccb45ddde6c48e74.oggstr" + +[deps] + +source_file="res://audio/sounds/msx_shit.ogg" +dest_files=[ "res://.import/msx_shit.ogg-3239485c047eb643ccb45ddde6c48e74.oggstr" ] + +[params] + +loop=false +loop_offset=0 diff --git a/maps/station.tscn b/maps/station.tscn index d4ecbff..2b71d5a 100644 --- a/maps/station.tscn +++ b/maps/station.tscn @@ -267,7 +267,7 @@ position = Vector2( 712, 152 ) scale = Vector2( 1, 2 ) [node name="Button" parent="Environment" instance=ExtResource( 18 )] -position = Vector2( 64, 168 ) +position = Vector2( 72, 168 ) target_group = "cell" [node name="Button2" parent="Environment" instance=ExtResource( 18 )] @@ -275,7 +275,7 @@ position = Vector2( 312, 19 ) target_group = "yellow_star_laser" [node name="MsX" parent="Environment" groups=["cell"] instance=ExtResource( 22 )] -position = Vector2( 180, 158 ) +position = Vector2( 176, 158 ) [node name="Barrier" parent="Environment" instance=ExtResource( 23 )] position = Vector2( 424, 112 ) diff --git a/objects/npc/msx.gd b/objects/npc/msx.gd index c1f2ab6..2d2b7ae 100644 --- a/objects/npc/msx.gd +++ b/objects/npc/msx.gd @@ -13,19 +13,25 @@ onready var respawn_raycast = $RespawnRaycast onready var shard_position = $Position2D onready var start_position = position onready var blink_timer = $BlinkTimer +onready var text_anim = $TextAnim +onready var cop_detector = $CopDetector const shard = preload("res://objects/collectibles/shard.tscn") const BloodSpray := preload("res://objects/environment/blood/blood_spray.tscn") #DIALOGUE const here_take_this = preload("res://audio/sounds/msx_here_take_this.wav") const come_here = preload("res://audio/sounds/msx_come_here.ogg") const help_me = preload("res://audio/sounds/msx_help_me_get_outta_here.ogg") +const fuck = preload("res://audio/sounds/msx_fuck.ogg") +const fucking_cop = preload("res://audio/sounds/msx_fucking_cop.ogg") +const goddammit = preload("res://audio/sounds/msx_goddammit.ogg") +const motherfucker = preload("res://audio/sounds/msx_motherfucker.ogg") +const shit = preload("res://audio/sounds/msx_shit.ogg") func _ready(): raycast.add_exception($Hitbox) blink_timer.start(rand_range(5.0,7.0)) func _physics_process(delta): - print(respawn_raycast.get_collider()) if is_moving: velocity.x = -50 #Stop when see something if raycast.is_colliding(): @@ -34,14 +40,17 @@ func _physics_process(delta): if respawn_raycast.is_colliding(): #start moving again after respawning when seeing sg if raycast.get_collider() != null: - if first_lead == true: Audio.play_sound(help_me,Audio.ac_voice) - first_lead = false - if raycast.get_collider().is_in_group("player_hitbox"): is_moving = true + if raycast.get_collider().is_in_group("player_hitbox"): + if first_lead == true: + Audio.play_sound(help_me,Audio.ac_voice) + text_anim.play("help me") + first_lead = false + is_moving = true velocity.y += 128 * delta velocity = move_and_slide_with_snap(velocity, Vector2.DOWN, Vector2.UP, true) #Anims if velocity.x == 0: - if !anims.get_current_animation() == "give" && !anims.get_current_animation() == "respawn" && !anims.get_current_animation() == "blink" && !anims.get_current_animation() == "come here": anims.play("idle") + if !anims.get_current_animation() == "give" && !anims.get_current_animation() == "respawn" && !anims.get_current_animation() == "blink" && !anims.get_current_animation() == "come here" && !anims.get_current_animation() == "help me": anims.play("idle") else: anims.play("walk") #Stop at the end of path and give shard @@ -50,6 +59,9 @@ func _physics_process(delta): velocity.x = 0 if is_holding_shard: anims.play("give") + #Cop detector + if cop_detector.is_colliding(): + print(cop_detector.get_collider()) func spawn_shard(): Audio.play_sound(here_take_this,Audio.ac_voice) diff --git a/objects/npc/msx.tscn b/objects/npc/msx.tscn index 076523f..2ee78d0 100644 --- a/objects/npc/msx.tscn +++ b/objects/npc/msx.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=23 format=2] +[gd_scene load_steps=26 format=2] [ext_resource path="res://shaders/1px_border.gdshader" type="Shader" id=1] [ext_resource path="res://graphics/npc/msx_respawn.png" type="Texture" id=2] @@ -74,6 +74,18 @@ tracks/4/keys = { "update": 1, "values": [ false ] } +tracks/5/type = "value" +tracks/5/path = NodePath("HelpMe:visible") +tracks/5/interp = 1 +tracks/5/loop_wrap = true +tracks/5/imported = false +tracks/5/enabled = true +tracks/5/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 1, +"values": [ false ] +} [sub_resource type="Animation" id=18] resource_name = "blink" @@ -236,6 +248,71 @@ tracks/4/keys = { "values": [ true, false ] } +[sub_resource type="Animation" id=20] +resource_name = "help me" +length = 3.0 +loop = true +tracks/0/type = "value" +tracks/0/path = NodePath("Sprite:texture") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 1, +"values": [ ExtResource( 3 ) ] +} +tracks/1/type = "value" +tracks/1/path = NodePath("Sprite:hframes") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 1, +"values": [ 4 ] +} +tracks/2/type = "value" +tracks/2/path = NodePath("Sprite:frame") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/keys = { +"times": PoolRealArray( 0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 1.7, 1.8, 1.9, 2, 2.1, 2.2, 2.3, 2.4, 2.5, 2.6, 2.7, 2.8, 2.9, 3, 3.1, 3.2, 3.3, 3.4, 3.5 ), +"transitions": PoolRealArray( 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ), +"update": 1, +"values": [ 0, 1, 2, 3, 0, 1, 2, 3, 0, 1, 2, 3, 0, 1, 2, 3, 0, 1, 2, 3, 0, 1, 2, 3, 0, 1, 2, 3, 0, 1, 2, 3, 0, 1, 2, 3 ] +} +tracks/3/type = "value" +tracks/3/path = NodePath("ComeHere:visible") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/keys = { +"times": PoolRealArray( 0.1 ), +"transitions": PoolRealArray( 1 ), +"update": 1, +"values": [ false ] +} +tracks/4/type = "value" +tracks/4/path = NodePath("HelpMe:visible") +tracks/4/interp = 1 +tracks/4/loop_wrap = true +tracks/4/imported = false +tracks/4/enabled = true +tracks/4/keys = { +"times": PoolRealArray( 0.1, 2.9 ), +"transitions": PoolRealArray( 1, 1 ), +"update": 1, +"values": [ true, false ] +} + [sub_resource type="Animation" id=4] resource_name = "idle" length = 0.001 @@ -370,18 +447,6 @@ tracks/2/keys = { "update": 1, "values": [ 0, 1, 2, 3 ] } -tracks/3/type = "value" -tracks/3/path = NodePath("ComeHere:visible") -tracks/3/interp = 1 -tracks/3/loop_wrap = true -tracks/3/imported = false -tracks/3/enabled = true -tracks/3/keys = { -"times": PoolRealArray( 0.1 ), -"transitions": PoolRealArray( 1 ), -"update": 1, -"values": [ false ] -} [sub_resource type="ShaderMaterial" id=10] resource_local_to_scene = true @@ -399,6 +464,37 @@ height = 5.0 [sub_resource type="Curve" id=13] _data = [ Vector2( 0, 1 ), 0.0, -0.113537, 0, 0, Vector2( 1, 0 ), -3.35032, 0.0, 0, 0 ] +[sub_resource type="Animation" id=21] +length = 0.001 +tracks/0/type = "value" +tracks/0/path = NodePath("HelpMe:visible") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 1, +"values": [ false ] +} + +[sub_resource type="Animation" id=22] +resource_name = "help me" +length = 3.0 +tracks/0/type = "value" +tracks/0/path = NodePath("HelpMe:visible") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0, 2.9 ), +"transitions": PoolRealArray( 1, 1 ), +"update": 1, +"values": [ true, false ] +} + [node name="MsX" type="KinematicBody2D"] script = ExtResource( 13 ) @@ -408,6 +504,7 @@ anims/RESET = SubResource( 16 ) anims/blink = SubResource( 18 ) "anims/come here" = SubResource( 19 ) anims/give = SubResource( 15 ) +"anims/help me" = SubResource( 20 ) anims/idle = SubResource( 4 ) anims/respawn = SubResource( 17 ) anims/walk = SubResource( 9 ) @@ -499,4 +596,25 @@ margin_bottom = -8.0 theme = ExtResource( 5 ) text = "Hey, come here!" +[node name="HelpMe" type="Label" parent="."] +visible = false +material = ExtResource( 6 ) +margin_left = -41.0 +margin_top = -33.0 +margin_right = 43.0 +margin_bottom = -10.0 +theme = ExtResource( 5 ) +text = "Help me get +outta here!" +align = 1 + +[node name="TextAnim" type="AnimationPlayer" parent="."] +anims/RESET = SubResource( 21 ) +"anims/help me" = SubResource( 22 ) + +[node name="CopDetector" type="RayCast2D" parent="."] +enabled = true +cast_to = Vector2( -135, 0 ) +collision_mask = 3 + [connection signal="timeout" from="BlinkTimer" to="." method="_on_BlinkTimer_timeout"]