├── mud.png ├── bush.png ├── grass.png ├── icon.png ├── star.png ├── trash.png ├── trash.xcf ├── tree.png ├── bedstead.otf ├── char_hat.png ├── flowers.png ├── kid_body.png ├── kid_face.png ├── kid_hat.png ├── bydlo_body.png ├── bydlo_cig.png ├── bydlo_hat.png ├── char_body.png ├── char_face.png ├── char_ripple.png ├── footsteps.mp3 ├── good_or_bad.png ├── jungle-day.mp3 ├── alcoholic_hat.png ├── kid_backpack.png ├── marauder_body.png ├── marauder_face.png ├── sign_no_text.png ├── alcoholic_body.png ├── alcoholic_bottle.png ├── alcoholic_face.png ├── alcoholic_hand_l.png ├── alcoholic_hand_r.png ├── direction_sign.png ├── marauder_hand_l.png ├── marauder_hand_r.png ├── angery_mcangerface.xcf ├── marauder_knoif_mate.png ├── scripts ├── global.gd ├── gameover.gd ├── ObhodEvent.gd ├── ending.gd ├── ending_area.gd ├── question_panel_twoopts.gd ├── question_panel_yn.gd ├── monologue_area.gd ├── MudEvent.gd ├── sign.gd ├── camera_follow.gd ├── kick.gd ├── text_bubble.gd ├── bydlo.gd ├── EndingEvent.gd ├── alcoholic.gd ├── choice_area.gd ├── AlcoEvent.gd ├── character.gd └── BydloEvent.gd ├── char_body_quad.tres ├── char_face_quad.tres ├── char_hat_quad.tres ├── default_env.tres ├── char_face_flip_quad.tres ├── char_hat_flip_quad.tres ├── .gitignore ├── char_hat_sm.tres ├── char_face_sm.tres ├── char_body_sm.tres ├── char_hat_flip_sm.tres ├── char_face_flip_sm.tres ├── font.tres ├── footsteps.mp3.import ├── jungle-day.mp3.import ├── prefabs ├── bush.tscn ├── grass.tscn ├── flowers.tscn ├── tree.tscn ├── garbage.tscn ├── mud.tscn ├── choice_area.tscn ├── ending_area.tscn ├── monologue_area.tscn ├── text_bubble_panel.tscn ├── text_bubble.tscn ├── direction_sign.tscn ├── question_panel_yn.tscn ├── question_panel_twoopts.tscn ├── character.tscn ├── bydlo.tscn └── alcoholic.tscn ├── icon.png.import ├── bush.png.import ├── star.png.import ├── tree.png.import ├── grass.png.import ├── kid_hat.png.import ├── trash.png.import ├── flowers.png.import ├── kid_body.png.import ├── kid_face.png.import ├── char_hat.png.import ├── bydlo_cig.png.import ├── bydlo_hat.png.import ├── char_body.png.import ├── char_face.png.import ├── bydlo_body.png.import ├── char_ripple.png.import ├── good_or_bad.png.import ├── kid_backpack.png.import ├── sign_no_text.png.import ├── marauder_body.png.import ├── marauder_face.png.import ├── alcoholic_hat.png.import ├── alcoholic_body.png.import ├── alcoholic_face.png.import ├── direction_sign.png.import ├── marauder_hand_l.png.import ├── marauder_hand_r.png.import ├── alcoholic_hand_l.png.import ├── alcoholic_hand_r.png.import ├── alcoholic_bottle.png.import ├── marauder_knoif_mate.png.import ├── gameover.tscn ├── mud.png.import ├── char_idle.tres ├── fall.tres ├── ending.tscn ├── sleep.tres ├── char_walk.tres ├── sign_flyawaynow.tres ├── project.godot └── main_scene.tscn /mud.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rndtrash/tbgj2021.2-entry/master/mud.png -------------------------------------------------------------------------------- /bush.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rndtrash/tbgj2021.2-entry/master/bush.png -------------------------------------------------------------------------------- /grass.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rndtrash/tbgj2021.2-entry/master/grass.png -------------------------------------------------------------------------------- /icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rndtrash/tbgj2021.2-entry/master/icon.png -------------------------------------------------------------------------------- /star.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rndtrash/tbgj2021.2-entry/master/star.png -------------------------------------------------------------------------------- /trash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rndtrash/tbgj2021.2-entry/master/trash.png -------------------------------------------------------------------------------- /trash.xcf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rndtrash/tbgj2021.2-entry/master/trash.xcf -------------------------------------------------------------------------------- /tree.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rndtrash/tbgj2021.2-entry/master/tree.png -------------------------------------------------------------------------------- /bedstead.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rndtrash/tbgj2021.2-entry/master/bedstead.otf -------------------------------------------------------------------------------- /char_hat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rndtrash/tbgj2021.2-entry/master/char_hat.png -------------------------------------------------------------------------------- /flowers.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rndtrash/tbgj2021.2-entry/master/flowers.png -------------------------------------------------------------------------------- /kid_body.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rndtrash/tbgj2021.2-entry/master/kid_body.png -------------------------------------------------------------------------------- /kid_face.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rndtrash/tbgj2021.2-entry/master/kid_face.png -------------------------------------------------------------------------------- /kid_hat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rndtrash/tbgj2021.2-entry/master/kid_hat.png -------------------------------------------------------------------------------- /bydlo_body.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rndtrash/tbgj2021.2-entry/master/bydlo_body.png -------------------------------------------------------------------------------- /bydlo_cig.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rndtrash/tbgj2021.2-entry/master/bydlo_cig.png -------------------------------------------------------------------------------- /bydlo_hat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rndtrash/tbgj2021.2-entry/master/bydlo_hat.png -------------------------------------------------------------------------------- /char_body.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rndtrash/tbgj2021.2-entry/master/char_body.png -------------------------------------------------------------------------------- /char_face.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rndtrash/tbgj2021.2-entry/master/char_face.png -------------------------------------------------------------------------------- /char_ripple.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rndtrash/tbgj2021.2-entry/master/char_ripple.png -------------------------------------------------------------------------------- /footsteps.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rndtrash/tbgj2021.2-entry/master/footsteps.mp3 -------------------------------------------------------------------------------- /good_or_bad.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rndtrash/tbgj2021.2-entry/master/good_or_bad.png -------------------------------------------------------------------------------- /jungle-day.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rndtrash/tbgj2021.2-entry/master/jungle-day.mp3 -------------------------------------------------------------------------------- /alcoholic_hat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rndtrash/tbgj2021.2-entry/master/alcoholic_hat.png -------------------------------------------------------------------------------- /kid_backpack.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rndtrash/tbgj2021.2-entry/master/kid_backpack.png -------------------------------------------------------------------------------- /marauder_body.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rndtrash/tbgj2021.2-entry/master/marauder_body.png -------------------------------------------------------------------------------- /marauder_face.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rndtrash/tbgj2021.2-entry/master/marauder_face.png -------------------------------------------------------------------------------- /sign_no_text.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rndtrash/tbgj2021.2-entry/master/sign_no_text.png -------------------------------------------------------------------------------- /alcoholic_body.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rndtrash/tbgj2021.2-entry/master/alcoholic_body.png -------------------------------------------------------------------------------- /alcoholic_bottle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rndtrash/tbgj2021.2-entry/master/alcoholic_bottle.png -------------------------------------------------------------------------------- /alcoholic_face.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rndtrash/tbgj2021.2-entry/master/alcoholic_face.png -------------------------------------------------------------------------------- /alcoholic_hand_l.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rndtrash/tbgj2021.2-entry/master/alcoholic_hand_l.png -------------------------------------------------------------------------------- /alcoholic_hand_r.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rndtrash/tbgj2021.2-entry/master/alcoholic_hand_r.png -------------------------------------------------------------------------------- /direction_sign.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rndtrash/tbgj2021.2-entry/master/direction_sign.png -------------------------------------------------------------------------------- /marauder_hand_l.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rndtrash/tbgj2021.2-entry/master/marauder_hand_l.png -------------------------------------------------------------------------------- /marauder_hand_r.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rndtrash/tbgj2021.2-entry/master/marauder_hand_r.png -------------------------------------------------------------------------------- /angery_mcangerface.xcf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rndtrash/tbgj2021.2-entry/master/angery_mcangerface.xcf -------------------------------------------------------------------------------- /marauder_knoif_mate.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rndtrash/tbgj2021.2-entry/master/marauder_knoif_mate.png -------------------------------------------------------------------------------- /scripts/global.gd: -------------------------------------------------------------------------------- 1 | extends Node 2 | 3 | export var ignored_sign : bool = false 4 | export var ending : String = 'НОРМ' 5 | export var kicked_alco : bool = false 6 | -------------------------------------------------------------------------------- /scripts/gameover.gd: -------------------------------------------------------------------------------- 1 | extends ColorRect 2 | 3 | func _ready(): 4 | yield(get_tree().create_timer(5.0), "timeout") 5 | get_tree().change_scene("res://main_scene.tscn") 6 | -------------------------------------------------------------------------------- /char_body_quad.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="QuadMesh" load_steps=2 format=2] 2 | 3 | [ext_resource path="res://char_body_sm.tres" type="Material" id=1] 4 | 5 | [resource] 6 | material = ExtResource( 1 ) 7 | -------------------------------------------------------------------------------- /char_face_quad.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="QuadMesh" load_steps=2 format=2] 2 | 3 | [ext_resource path="res://char_face_sm.tres" type="Material" id=1] 4 | 5 | [resource] 6 | material = ExtResource( 1 ) 7 | -------------------------------------------------------------------------------- /char_hat_quad.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="QuadMesh" load_steps=2 format=2] 2 | 3 | [ext_resource path="res://char_hat_sm.tres" type="Material" id=1] 4 | 5 | [resource] 6 | material = ExtResource( 1 ) 7 | -------------------------------------------------------------------------------- /default_env.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="Environment" load_steps=2 format=2] 2 | 3 | [sub_resource type="ProceduralSky" id=1] 4 | 5 | [resource] 6 | background_mode = 2 7 | background_sky = SubResource( 1 ) 8 | -------------------------------------------------------------------------------- /char_face_flip_quad.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="QuadMesh" load_steps=2 format=2] 2 | 3 | [ext_resource path="res://char_face_flip_sm.tres" type="Material" id=1] 4 | 5 | [resource] 6 | material = ExtResource( 1 ) 7 | -------------------------------------------------------------------------------- /char_hat_flip_quad.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="QuadMesh" load_steps=2 format=2] 2 | 3 | [ext_resource path="res://char_hat_flip_sm.tres" type="Material" id=1] 4 | 5 | [resource] 6 | material = ExtResource( 1 ) 7 | -------------------------------------------------------------------------------- /scripts/ObhodEvent.gd: -------------------------------------------------------------------------------- 1 | extends Spatial 2 | 3 | onready var player = get_tree().get_nodes_in_group('Player')[0] 4 | 5 | func _on_MonologueAreaKickedSign3_body_entered(body): 6 | player.translation.z += 0.5 7 | -------------------------------------------------------------------------------- /scripts/ending.gd: -------------------------------------------------------------------------------- 1 | extends ColorRect 2 | 3 | func _ready(): 4 | print($"/root/global".ignored_sign,$"/root/global".kicked_alco,$"/root/global".ending) 5 | $Label.text = $"/root/global".ending + ' КОНЦОВКА' 6 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | ### Godot ### 2 | # Godot-specific ignores 3 | .import/ 4 | export.cfg 5 | export_presets.cfg 6 | 7 | # Imported translations (automatically generated from CSV files) 8 | *.translation 9 | 10 | # Mono-specific ignores 11 | .mono/ 12 | data_*/ -------------------------------------------------------------------------------- /char_hat_sm.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="SpatialMaterial" load_steps=2 format=2] 2 | 3 | [ext_resource path="res://char_hat.png" type="Texture" id=1] 4 | 5 | [resource] 6 | flags_transparent = true 7 | flags_unshaded = true 8 | albedo_texture = ExtResource( 1 ) 9 | -------------------------------------------------------------------------------- /char_face_sm.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="SpatialMaterial" load_steps=2 format=2] 2 | 3 | [ext_resource path="res://char_face.png" type="Texture" id=1] 4 | 5 | [resource] 6 | flags_transparent = true 7 | flags_unshaded = true 8 | albedo_texture = ExtResource( 1 ) 9 | -------------------------------------------------------------------------------- /char_body_sm.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="SpatialMaterial" load_steps=2 format=2] 2 | 3 | [ext_resource path="res://char_body.png" type="Texture" id=1] 4 | 5 | [resource] 6 | flags_transparent = true 7 | flags_unshaded = true 8 | params_cull_mode = 2 9 | albedo_texture = ExtResource( 1 ) 10 | -------------------------------------------------------------------------------- /char_hat_flip_sm.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="SpatialMaterial" load_steps=2 format=2] 2 | 3 | [ext_resource path="res://char_hat.png" type="Texture" id=1] 4 | 5 | [resource] 6 | flags_transparent = true 7 | flags_unshaded = true 8 | params_cull_mode = 1 9 | albedo_texture = ExtResource( 1 ) 10 | -------------------------------------------------------------------------------- /char_face_flip_sm.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="SpatialMaterial" load_steps=2 format=2] 2 | 3 | [ext_resource path="res://char_face.png" type="Texture" id=1] 4 | 5 | [resource] 6 | flags_transparent = true 7 | flags_unshaded = true 8 | params_cull_mode = 1 9 | albedo_texture = ExtResource( 1 ) 10 | -------------------------------------------------------------------------------- /scripts/ending_area.gd: -------------------------------------------------------------------------------- 1 | extends Area 2 | 3 | export var text : String = '' 4 | 5 | func _on_ChoiceArea_body_entered(body): 6 | if body.name != 'Character': 7 | return 8 | print('Концовка') 9 | $"/root/global".ending = text 10 | tr_e() 11 | 12 | func tr_e(): 13 | get_tree().change_scene("res://ending.tscn") 14 | -------------------------------------------------------------------------------- /font.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="DynamicFont" load_steps=2 format=2] 2 | 3 | [sub_resource type="DynamicFontData" id=1] 4 | antialiased = false 5 | hinting = 0 6 | font_path = "res://bedstead.otf" 7 | 8 | [resource] 9 | size = 20 10 | outline_size = 2 11 | outline_color = Color( 0, 0, 0, 1 ) 12 | font_data = SubResource( 1 ) 13 | -------------------------------------------------------------------------------- /scripts/question_panel_twoopts.gd: -------------------------------------------------------------------------------- 1 | extends Control 2 | 3 | signal answer(s) 4 | 5 | onready var first = $'VBoxContainer/VBoxContainer/1' 6 | onready var second = $'VBoxContainer/VBoxContainer/2' 7 | 8 | func _on_1_pressed(): 9 | emit_signal('answer', 'first') 10 | 11 | func _on_2_pressed(): 12 | emit_signal('answer', 'second') 13 | -------------------------------------------------------------------------------- /scripts/question_panel_yn.gd: -------------------------------------------------------------------------------- 1 | extends Control 2 | 3 | signal answer(s) 4 | 5 | func _on_QuestionPanelYN_gui_input(event): 6 | if Input.is_action_pressed('choice_good'): 7 | emit_signal('answer', 'good') 8 | queue_free() 9 | elif Input.is_action_pressed('choice_bad'): 10 | emit_signal('answer', 'bad') 11 | queue_free() 12 | -------------------------------------------------------------------------------- /footsteps.mp3.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="mp3" 4 | type="AudioStreamMP3" 5 | path="res://.import/footsteps.mp3-652365aeb1ec8dfb6c21b1fe60ad667e.mp3str" 6 | 7 | [deps] 8 | 9 | source_file="res://footsteps.mp3" 10 | dest_files=[ "res://.import/footsteps.mp3-652365aeb1ec8dfb6c21b1fe60ad667e.mp3str" ] 11 | 12 | [params] 13 | 14 | loop=true 15 | loop_offset=0 16 | -------------------------------------------------------------------------------- /scripts/monologue_area.gd: -------------------------------------------------------------------------------- 1 | extends Area 2 | 3 | export var text : String = '' 4 | export var one_shot : bool = true 5 | 6 | onready var player = get_tree().get_nodes_in_group('Player')[0] 7 | 8 | func _on_MonologueArea_body_entered(body): 9 | if body.name != 'Character': 10 | return 11 | player.dialog_box.show_text(text) 12 | if one_shot: 13 | queue_free() 14 | -------------------------------------------------------------------------------- /jungle-day.mp3.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="mp3" 4 | type="AudioStreamMP3" 5 | path="res://.import/jungle-day.mp3-ff31694504fef6b04fdcbc5f5986b143.mp3str" 6 | 7 | [deps] 8 | 9 | source_file="res://jungle-day.mp3" 10 | dest_files=[ "res://.import/jungle-day.mp3-ff31694504fef6b04fdcbc5f5986b143.mp3str" ] 11 | 12 | [params] 13 | 14 | loop=true 15 | loop_offset=0 16 | -------------------------------------------------------------------------------- /scripts/MudEvent.gd: -------------------------------------------------------------------------------- 1 | extends Spatial 2 | 3 | onready var choice_area = $'ChoiceArea2' 4 | onready var player = get_tree().get_nodes_in_group('Player')[0] 5 | 6 | func _ready(): 7 | choice_area.question_panel.first.text = 'Обойти' 8 | choice_area.question_panel.second.text = 'Войти' 9 | 10 | func _on_ChoiceArea2_first(): 11 | player.translation.z -= 0.5 12 | queue_free() 13 | 14 | func _on_ChoiceArea2_second(): 15 | queue_free() 16 | -------------------------------------------------------------------------------- /prefabs/bush.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=4 format=2] 2 | 3 | [ext_resource path="res://bush.png" type="Texture" id=1] 4 | 5 | [sub_resource type="SpatialMaterial" id=1] 6 | flags_transparent = true 7 | flags_unshaded = true 8 | albedo_texture = ExtResource( 1 ) 9 | 10 | [sub_resource type="QuadMesh" id=2] 11 | material = SubResource( 1 ) 12 | 13 | [node name="Bush" type="MeshInstance"] 14 | mesh = SubResource( 2 ) 15 | material/0 = null 16 | -------------------------------------------------------------------------------- /prefabs/grass.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=4 format=2] 2 | 3 | [ext_resource path="res://grass.png" type="Texture" id=1] 4 | 5 | [sub_resource type="SpatialMaterial" id=1] 6 | flags_transparent = true 7 | flags_unshaded = true 8 | albedo_texture = ExtResource( 1 ) 9 | 10 | [sub_resource type="QuadMesh" id=2] 11 | material = SubResource( 1 ) 12 | 13 | [node name="Grass" type="MeshInstance"] 14 | mesh = SubResource( 2 ) 15 | material/0 = null 16 | -------------------------------------------------------------------------------- /prefabs/flowers.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=4 format=2] 2 | 3 | [ext_resource path="res://flowers.png" type="Texture" id=1] 4 | 5 | [sub_resource type="SpatialMaterial" id=1] 6 | flags_transparent = true 7 | flags_unshaded = true 8 | albedo_texture = ExtResource( 1 ) 9 | 10 | [sub_resource type="QuadMesh" id=2] 11 | material = SubResource( 1 ) 12 | 13 | [node name="Flowers" type="MeshInstance"] 14 | mesh = SubResource( 2 ) 15 | material/0 = null 16 | -------------------------------------------------------------------------------- /prefabs/tree.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=4 format=2] 2 | 3 | [ext_resource path="res://tree.png" type="Texture" id=1] 4 | 5 | [sub_resource type="SpatialMaterial" id=1] 6 | flags_transparent = true 7 | flags_unshaded = true 8 | albedo_texture = ExtResource( 1 ) 9 | 10 | [sub_resource type="QuadMesh" id=2] 11 | material = SubResource( 1 ) 12 | size = Vector2( 1, 2 ) 13 | 14 | [node name="Tree" type="MeshInstance"] 15 | mesh = SubResource( 2 ) 16 | material/0 = null 17 | -------------------------------------------------------------------------------- /prefabs/garbage.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=4 format=2] 2 | 3 | [ext_resource path="res://trash.png" type="Texture" id=1] 4 | 5 | [sub_resource type="SpatialMaterial" id=1] 6 | flags_transparent = true 7 | flags_unshaded = true 8 | albedo_texture = ExtResource( 1 ) 9 | 10 | [sub_resource type="QuadMesh" id=2] 11 | material = SubResource( 1 ) 12 | size = Vector2( 2, 0.5 ) 13 | 14 | [node name="Bush" type="MeshInstance"] 15 | mesh = SubResource( 2 ) 16 | material/0 = null 17 | -------------------------------------------------------------------------------- /scripts/sign.gd: -------------------------------------------------------------------------------- 1 | extends Spatial 2 | 3 | onready var player = $"../../Character" 4 | onready var sign_o = $"../Sign" 5 | 6 | func kick_and_say(): 7 | $"/root/global".ignored_sign = false 8 | player.dialog_box.show_text('н-н-ныа!') 9 | sign_o.kick() 10 | queue_free() 11 | 12 | func ignore_and_say(): 13 | player.dialog_box.show_text('...') 14 | $"/root/global".ignored_sign = true 15 | $'../MonologueAreaKickedSign'.queue_free() 16 | $'../MonologueAreaKickedSign2'.queue_free() 17 | queue_free() 18 | -------------------------------------------------------------------------------- /scripts/camera_follow.gd: -------------------------------------------------------------------------------- 1 | extends Camera 2 | 3 | onready var character = $"../Character" 4 | 5 | export var distance : float = 4.0 6 | 7 | # Called when the node enters the scene tree for the first time. 8 | func _ready(): 9 | translation = character.translation + Vector3(3.0 * character.facing, 1.0, 3.0) 10 | 11 | # Called every frame. 'delta' is the elapsed time since the previous frame. 12 | func _process(delta): 13 | translation = lerp(translation, character.translation + Vector3(3.0 * character.facing, 1.0, distance), 2.5 * delta) 14 | -------------------------------------------------------------------------------- /prefabs/mud.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=4 format=2] 2 | 3 | [ext_resource path="res://mud.png" type="Texture" id=1] 4 | 5 | [sub_resource type="SpatialMaterial" id=1] 6 | flags_transparent = true 7 | flags_unshaded = true 8 | albedo_texture = ExtResource( 1 ) 9 | 10 | [sub_resource type="QuadMesh" id=2] 11 | material = SubResource( 1 ) 12 | size = Vector2( 4, 1 ) 13 | 14 | [node name="Mud" type="MeshInstance"] 15 | transform = Transform( 1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, 0, 0, 0 ) 16 | mesh = SubResource( 2 ) 17 | material/0 = null 18 | -------------------------------------------------------------------------------- /scripts/kick.gd: -------------------------------------------------------------------------------- 1 | extends Spatial 2 | 3 | onready var player = $AnimationPlayer 4 | 5 | var current_animation = '' 6 | 7 | # Called when the node enters the scene tree for the first time. 8 | func _ready(): 9 | pass 10 | 11 | func kick(): 12 | change_anim('flyawaynow') 13 | 14 | func change_anim(animation): 15 | if current_animation != animation: 16 | print("changed animation to ", animation) 17 | player.play(animation) 18 | current_animation = animation 19 | 20 | func _on_AnimationPlayer_animation_finished(anim_name): 21 | queue_free() 22 | -------------------------------------------------------------------------------- /prefabs/choice_area.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=3 format=2] 2 | 3 | [ext_resource path="res://scripts/choice_area.gd" type="Script" id=1] 4 | 5 | [sub_resource type="BoxShape" id=1] 6 | extents = Vector3( 0.179222, 1, 0.17196 ) 7 | 8 | [node name="ChoiceArea" type="Area"] 9 | script = ExtResource( 1 ) 10 | 11 | [node name="CollisionShape" type="CollisionShape" parent="."] 12 | transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -0.0132408, 0, 0 ) 13 | shape = SubResource( 1 ) 14 | 15 | [connection signal="body_entered" from="." to="." method="_on_ChoiceArea_body_entered"] 16 | -------------------------------------------------------------------------------- /prefabs/ending_area.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=3 format=2] 2 | 3 | [ext_resource path="res://scripts/ending_area.gd" type="Script" id=1] 4 | 5 | [sub_resource type="BoxShape" id=1] 6 | extents = Vector3( 0.179222, 1, 0.17196 ) 7 | 8 | [node name="EndingArea" type="Area"] 9 | script = ExtResource( 1 ) 10 | 11 | [node name="CollisionShape" type="CollisionShape" parent="."] 12 | transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -0.0132408, 0, 0 ) 13 | shape = SubResource( 1 ) 14 | 15 | [connection signal="body_entered" from="." to="." method="_on_ChoiceArea_body_entered"] 16 | -------------------------------------------------------------------------------- /prefabs/monologue_area.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=3 format=2] 2 | 3 | [ext_resource path="res://scripts/monologue_area.gd" type="Script" id=1] 4 | 5 | [sub_resource type="BoxShape" id=1] 6 | extents = Vector3( 0.179222, 1, 0.17196 ) 7 | 8 | [node name="MonologueArea" type="Area"] 9 | script = ExtResource( 1 ) 10 | 11 | [node name="CollisionShape" type="CollisionShape" parent="."] 12 | transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -0.0132408, 0, 0 ) 13 | shape = SubResource( 1 ) 14 | 15 | [connection signal="body_entered" from="." to="." method="_on_MonologueArea_body_entered"] 16 | -------------------------------------------------------------------------------- /scripts/text_bubble.gd: -------------------------------------------------------------------------------- 1 | extends Spatial 2 | 3 | export var follow_path : NodePath 4 | export var bubble_time : float = 5.0 5 | 6 | onready var panel = $"Viewport/Panel" 7 | onready var label = $"Viewport/Panel/Label" 8 | onready var follow = get_node(follow_path) 9 | onready var timer = $"Timer" 10 | 11 | func _ready(): 12 | hide_text() 13 | 14 | func _process(delta): 15 | if panel.visible: 16 | translation = lerp(translation, follow.translation + Vector3(0, 1, 0), 3 * delta) 17 | 18 | func hide_text(): 19 | panel.visible = false 20 | 21 | func show_text(text): 22 | label.text = text 23 | if not panel.visible: 24 | translation = follow.translation + Vector3(0, 1, 0) 25 | panel.visible = true 26 | timer.start(bubble_time) 27 | 28 | func _on_Timer_timeout(): 29 | hide_text() 30 | -------------------------------------------------------------------------------- /icon.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="StreamTexture" 5 | path="res://.import/icon.png-487276ed1e3a0c39cad0279d744ee560.stex" 6 | metadata={ 7 | "vram_texture": false 8 | } 9 | 10 | [deps] 11 | 12 | source_file="res://icon.png" 13 | dest_files=[ "res://.import/icon.png-487276ed1e3a0c39cad0279d744ee560.stex" ] 14 | 15 | [params] 16 | 17 | compress/mode=0 18 | compress/lossy_quality=0.7 19 | compress/hdr_mode=0 20 | compress/bptc_ldr=0 21 | compress/normal_map=0 22 | flags/repeat=0 23 | flags/filter=true 24 | flags/mipmaps=false 25 | flags/anisotropic=false 26 | flags/srgb=2 27 | process/fix_alpha_border=true 28 | process/premult_alpha=false 29 | process/HDR_as_SRGB=false 30 | process/invert_color=false 31 | stream=false 32 | size_limit=0 33 | detect_3d=true 34 | svg/scale=1.0 35 | -------------------------------------------------------------------------------- /bush.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="StreamTexture" 5 | path="res://.import/bush.png-2e26c4033a962045fd33552ab7e2846f.stex" 6 | metadata={ 7 | "vram_texture": false 8 | } 9 | 10 | [deps] 11 | 12 | source_file="res://bush.png" 13 | dest_files=[ "res://.import/bush.png-2e26c4033a962045fd33552ab7e2846f.stex" ] 14 | 15 | [params] 16 | 17 | compress/mode=0 18 | compress/lossy_quality=1.0 19 | compress/hdr_mode=0 20 | compress/bptc_ldr=0 21 | compress/normal_map=0 22 | flags/repeat=true 23 | flags/filter=false 24 | flags/mipmaps=false 25 | flags/anisotropic=false 26 | flags/srgb=1 27 | process/fix_alpha_border=true 28 | process/premult_alpha=false 29 | process/HDR_as_SRGB=false 30 | process/invert_color=false 31 | stream=false 32 | size_limit=0 33 | detect_3d=false 34 | svg/scale=1.0 35 | -------------------------------------------------------------------------------- /star.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="StreamTexture" 5 | path="res://.import/star.png-19e2a8935edef1994254d9cf64a4c2d9.stex" 6 | metadata={ 7 | "vram_texture": false 8 | } 9 | 10 | [deps] 11 | 12 | source_file="res://star.png" 13 | dest_files=[ "res://.import/star.png-19e2a8935edef1994254d9cf64a4c2d9.stex" ] 14 | 15 | [params] 16 | 17 | compress/mode=0 18 | compress/lossy_quality=1.0 19 | compress/hdr_mode=0 20 | compress/bptc_ldr=0 21 | compress/normal_map=0 22 | flags/repeat=true 23 | flags/filter=false 24 | flags/mipmaps=false 25 | flags/anisotropic=false 26 | flags/srgb=1 27 | process/fix_alpha_border=true 28 | process/premult_alpha=false 29 | process/HDR_as_SRGB=false 30 | process/invert_color=false 31 | stream=false 32 | size_limit=0 33 | detect_3d=false 34 | svg/scale=1.0 35 | -------------------------------------------------------------------------------- /tree.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="StreamTexture" 5 | path="res://.import/tree.png-e0869f9fb9c148a5baf00bb62a85d6ad.stex" 6 | metadata={ 7 | "vram_texture": false 8 | } 9 | 10 | [deps] 11 | 12 | source_file="res://tree.png" 13 | dest_files=[ "res://.import/tree.png-e0869f9fb9c148a5baf00bb62a85d6ad.stex" ] 14 | 15 | [params] 16 | 17 | compress/mode=0 18 | compress/lossy_quality=1.0 19 | compress/hdr_mode=0 20 | compress/bptc_ldr=0 21 | compress/normal_map=0 22 | flags/repeat=true 23 | flags/filter=false 24 | flags/mipmaps=false 25 | flags/anisotropic=false 26 | flags/srgb=1 27 | process/fix_alpha_border=true 28 | process/premult_alpha=false 29 | process/HDR_as_SRGB=false 30 | process/invert_color=false 31 | stream=false 32 | size_limit=0 33 | detect_3d=false 34 | svg/scale=1.0 35 | -------------------------------------------------------------------------------- /grass.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="StreamTexture" 5 | path="res://.import/grass.png-79cf597cc1adecdff9d12adae9606f9b.stex" 6 | metadata={ 7 | "vram_texture": false 8 | } 9 | 10 | [deps] 11 | 12 | source_file="res://grass.png" 13 | dest_files=[ "res://.import/grass.png-79cf597cc1adecdff9d12adae9606f9b.stex" ] 14 | 15 | [params] 16 | 17 | compress/mode=0 18 | compress/lossy_quality=1.0 19 | compress/hdr_mode=0 20 | compress/bptc_ldr=0 21 | compress/normal_map=0 22 | flags/repeat=true 23 | flags/filter=false 24 | flags/mipmaps=false 25 | flags/anisotropic=false 26 | flags/srgb=1 27 | process/fix_alpha_border=true 28 | process/premult_alpha=false 29 | process/HDR_as_SRGB=false 30 | process/invert_color=false 31 | stream=false 32 | size_limit=0 33 | detect_3d=false 34 | svg/scale=1.0 35 | -------------------------------------------------------------------------------- /kid_hat.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="StreamTexture" 5 | path="res://.import/kid_hat.png-da945776f39506241cfdb86ee2b73a4f.stex" 6 | metadata={ 7 | "vram_texture": false 8 | } 9 | 10 | [deps] 11 | 12 | source_file="res://kid_hat.png" 13 | dest_files=[ "res://.import/kid_hat.png-da945776f39506241cfdb86ee2b73a4f.stex" ] 14 | 15 | [params] 16 | 17 | compress/mode=0 18 | compress/lossy_quality=0.7 19 | compress/hdr_mode=0 20 | compress/bptc_ldr=0 21 | compress/normal_map=0 22 | flags/repeat=0 23 | flags/filter=true 24 | flags/mipmaps=false 25 | flags/anisotropic=false 26 | flags/srgb=2 27 | process/fix_alpha_border=true 28 | process/premult_alpha=false 29 | process/HDR_as_SRGB=false 30 | process/invert_color=false 31 | stream=false 32 | size_limit=0 33 | detect_3d=true 34 | svg/scale=1.0 35 | -------------------------------------------------------------------------------- /trash.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="StreamTexture" 5 | path="res://.import/trash.png-e99864321b62ad01d5ebe5582c21f0f9.stex" 6 | metadata={ 7 | "vram_texture": false 8 | } 9 | 10 | [deps] 11 | 12 | source_file="res://trash.png" 13 | dest_files=[ "res://.import/trash.png-e99864321b62ad01d5ebe5582c21f0f9.stex" ] 14 | 15 | [params] 16 | 17 | compress/mode=0 18 | compress/lossy_quality=0.7 19 | compress/hdr_mode=0 20 | compress/bptc_ldr=0 21 | compress/normal_map=0 22 | flags/repeat=true 23 | flags/filter=false 24 | flags/mipmaps=false 25 | flags/anisotropic=false 26 | flags/srgb=1 27 | process/fix_alpha_border=true 28 | process/premult_alpha=false 29 | process/HDR_as_SRGB=false 30 | process/invert_color=false 31 | stream=false 32 | size_limit=0 33 | detect_3d=false 34 | svg/scale=1.0 35 | -------------------------------------------------------------------------------- /flowers.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="StreamTexture" 5 | path="res://.import/flowers.png-3cbed078a28bacf70bb995f89cfe64d2.stex" 6 | metadata={ 7 | "vram_texture": false 8 | } 9 | 10 | [deps] 11 | 12 | source_file="res://flowers.png" 13 | dest_files=[ "res://.import/flowers.png-3cbed078a28bacf70bb995f89cfe64d2.stex" ] 14 | 15 | [params] 16 | 17 | compress/mode=0 18 | compress/lossy_quality=1.0 19 | compress/hdr_mode=0 20 | compress/bptc_ldr=0 21 | compress/normal_map=0 22 | flags/repeat=true 23 | flags/filter=false 24 | flags/mipmaps=false 25 | flags/anisotropic=false 26 | flags/srgb=1 27 | process/fix_alpha_border=true 28 | process/premult_alpha=false 29 | process/HDR_as_SRGB=false 30 | process/invert_color=false 31 | stream=false 32 | size_limit=0 33 | detect_3d=false 34 | svg/scale=1.0 35 | -------------------------------------------------------------------------------- /kid_body.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="StreamTexture" 5 | path="res://.import/kid_body.png-7a17d69ea720cf9eac313b1bc822fb5b.stex" 6 | metadata={ 7 | "vram_texture": false 8 | } 9 | 10 | [deps] 11 | 12 | source_file="res://kid_body.png" 13 | dest_files=[ "res://.import/kid_body.png-7a17d69ea720cf9eac313b1bc822fb5b.stex" ] 14 | 15 | [params] 16 | 17 | compress/mode=0 18 | compress/lossy_quality=0.7 19 | compress/hdr_mode=0 20 | compress/bptc_ldr=0 21 | compress/normal_map=0 22 | flags/repeat=0 23 | flags/filter=true 24 | flags/mipmaps=false 25 | flags/anisotropic=false 26 | flags/srgb=2 27 | process/fix_alpha_border=true 28 | process/premult_alpha=false 29 | process/HDR_as_SRGB=false 30 | process/invert_color=false 31 | stream=false 32 | size_limit=0 33 | detect_3d=true 34 | svg/scale=1.0 35 | -------------------------------------------------------------------------------- /kid_face.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="StreamTexture" 5 | path="res://.import/kid_face.png-e0f107bcd01b5d715c7d73ee11a5b33c.stex" 6 | metadata={ 7 | "vram_texture": false 8 | } 9 | 10 | [deps] 11 | 12 | source_file="res://kid_face.png" 13 | dest_files=[ "res://.import/kid_face.png-e0f107bcd01b5d715c7d73ee11a5b33c.stex" ] 14 | 15 | [params] 16 | 17 | compress/mode=0 18 | compress/lossy_quality=0.7 19 | compress/hdr_mode=0 20 | compress/bptc_ldr=0 21 | compress/normal_map=0 22 | flags/repeat=0 23 | flags/filter=true 24 | flags/mipmaps=false 25 | flags/anisotropic=false 26 | flags/srgb=2 27 | process/fix_alpha_border=true 28 | process/premult_alpha=false 29 | process/HDR_as_SRGB=false 30 | process/invert_color=false 31 | stream=false 32 | size_limit=0 33 | detect_3d=true 34 | svg/scale=1.0 35 | -------------------------------------------------------------------------------- /char_hat.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="StreamTexture" 5 | path="res://.import/char_hat.png-dc99f59c4927f5c84aa419f43257a4e4.stex" 6 | metadata={ 7 | "vram_texture": false 8 | } 9 | 10 | [deps] 11 | 12 | source_file="res://char_hat.png" 13 | dest_files=[ "res://.import/char_hat.png-dc99f59c4927f5c84aa419f43257a4e4.stex" ] 14 | 15 | [params] 16 | 17 | compress/mode=0 18 | compress/lossy_quality=1.0 19 | compress/hdr_mode=0 20 | compress/bptc_ldr=0 21 | compress/normal_map=0 22 | flags/repeat=true 23 | flags/filter=false 24 | flags/mipmaps=false 25 | flags/anisotropic=false 26 | flags/srgb=1 27 | process/fix_alpha_border=true 28 | process/premult_alpha=false 29 | process/HDR_as_SRGB=false 30 | process/invert_color=false 31 | stream=false 32 | size_limit=0 33 | detect_3d=false 34 | svg/scale=1.0 35 | -------------------------------------------------------------------------------- /bydlo_cig.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="StreamTexture" 5 | path="res://.import/bydlo_cig.png-cbdeaefe2ea08a91e57a092c70a56ca0.stex" 6 | metadata={ 7 | "vram_texture": false 8 | } 9 | 10 | [deps] 11 | 12 | source_file="res://bydlo_cig.png" 13 | dest_files=[ "res://.import/bydlo_cig.png-cbdeaefe2ea08a91e57a092c70a56ca0.stex" ] 14 | 15 | [params] 16 | 17 | compress/mode=0 18 | compress/lossy_quality=0.7 19 | compress/hdr_mode=0 20 | compress/bptc_ldr=0 21 | compress/normal_map=0 22 | flags/repeat=true 23 | flags/filter=false 24 | flags/mipmaps=false 25 | flags/anisotropic=false 26 | flags/srgb=1 27 | process/fix_alpha_border=true 28 | process/premult_alpha=false 29 | process/HDR_as_SRGB=false 30 | process/invert_color=false 31 | stream=false 32 | size_limit=0 33 | detect_3d=false 34 | svg/scale=1.0 35 | -------------------------------------------------------------------------------- /bydlo_hat.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="StreamTexture" 5 | path="res://.import/bydlo_hat.png-f398cea62ccc7c662c897c23f5782c8e.stex" 6 | metadata={ 7 | "vram_texture": false 8 | } 9 | 10 | [deps] 11 | 12 | source_file="res://bydlo_hat.png" 13 | dest_files=[ "res://.import/bydlo_hat.png-f398cea62ccc7c662c897c23f5782c8e.stex" ] 14 | 15 | [params] 16 | 17 | compress/mode=0 18 | compress/lossy_quality=0.7 19 | compress/hdr_mode=0 20 | compress/bptc_ldr=0 21 | compress/normal_map=0 22 | flags/repeat=true 23 | flags/filter=false 24 | flags/mipmaps=false 25 | flags/anisotropic=false 26 | flags/srgb=1 27 | process/fix_alpha_border=true 28 | process/premult_alpha=false 29 | process/HDR_as_SRGB=false 30 | process/invert_color=false 31 | stream=false 32 | size_limit=0 33 | detect_3d=false 34 | svg/scale=1.0 35 | -------------------------------------------------------------------------------- /char_body.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="StreamTexture" 5 | path="res://.import/char_body.png-77b243f9085d3c4fafb48ab73ebd64d8.stex" 6 | metadata={ 7 | "vram_texture": false 8 | } 9 | 10 | [deps] 11 | 12 | source_file="res://char_body.png" 13 | dest_files=[ "res://.import/char_body.png-77b243f9085d3c4fafb48ab73ebd64d8.stex" ] 14 | 15 | [params] 16 | 17 | compress/mode=0 18 | compress/lossy_quality=1.0 19 | compress/hdr_mode=0 20 | compress/bptc_ldr=0 21 | compress/normal_map=0 22 | flags/repeat=true 23 | flags/filter=false 24 | flags/mipmaps=false 25 | flags/anisotropic=false 26 | flags/srgb=1 27 | process/fix_alpha_border=true 28 | process/premult_alpha=false 29 | process/HDR_as_SRGB=false 30 | process/invert_color=false 31 | stream=false 32 | size_limit=0 33 | detect_3d=false 34 | svg/scale=1.0 35 | -------------------------------------------------------------------------------- /char_face.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="StreamTexture" 5 | path="res://.import/char_face.png-6940fcc79f92d79cd44c5dbbfcd7aae3.stex" 6 | metadata={ 7 | "vram_texture": false 8 | } 9 | 10 | [deps] 11 | 12 | source_file="res://char_face.png" 13 | dest_files=[ "res://.import/char_face.png-6940fcc79f92d79cd44c5dbbfcd7aae3.stex" ] 14 | 15 | [params] 16 | 17 | compress/mode=0 18 | compress/lossy_quality=1.0 19 | compress/hdr_mode=0 20 | compress/bptc_ldr=0 21 | compress/normal_map=0 22 | flags/repeat=true 23 | flags/filter=false 24 | flags/mipmaps=false 25 | flags/anisotropic=false 26 | flags/srgb=1 27 | process/fix_alpha_border=true 28 | process/premult_alpha=false 29 | process/HDR_as_SRGB=false 30 | process/invert_color=false 31 | stream=false 32 | size_limit=0 33 | detect_3d=false 34 | svg/scale=1.0 35 | -------------------------------------------------------------------------------- /bydlo_body.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="StreamTexture" 5 | path="res://.import/bydlo_body.png-dc19f6ecaca43a559952148604cef2c0.stex" 6 | metadata={ 7 | "vram_texture": false 8 | } 9 | 10 | [deps] 11 | 12 | source_file="res://bydlo_body.png" 13 | dest_files=[ "res://.import/bydlo_body.png-dc19f6ecaca43a559952148604cef2c0.stex" ] 14 | 15 | [params] 16 | 17 | compress/mode=0 18 | compress/lossy_quality=1.0 19 | compress/hdr_mode=0 20 | compress/bptc_ldr=0 21 | compress/normal_map=0 22 | flags/repeat=true 23 | flags/filter=false 24 | flags/mipmaps=false 25 | flags/anisotropic=false 26 | flags/srgb=1 27 | process/fix_alpha_border=true 28 | process/premult_alpha=false 29 | process/HDR_as_SRGB=false 30 | process/invert_color=false 31 | stream=false 32 | size_limit=0 33 | detect_3d=false 34 | svg/scale=1.0 35 | -------------------------------------------------------------------------------- /char_ripple.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="StreamTexture" 5 | path="res://.import/char_ripple.png-12ddc04d1d3b0ee92cef24d281e1218b.stex" 6 | metadata={ 7 | "vram_texture": false 8 | } 9 | 10 | [deps] 11 | 12 | source_file="res://char_ripple.png" 13 | dest_files=[ "res://.import/char_ripple.png-12ddc04d1d3b0ee92cef24d281e1218b.stex" ] 14 | 15 | [params] 16 | 17 | compress/mode=0 18 | compress/lossy_quality=0.7 19 | compress/hdr_mode=0 20 | compress/bptc_ldr=0 21 | compress/normal_map=0 22 | flags/repeat=0 23 | flags/filter=true 24 | flags/mipmaps=false 25 | flags/anisotropic=false 26 | flags/srgb=2 27 | process/fix_alpha_border=true 28 | process/premult_alpha=false 29 | process/HDR_as_SRGB=false 30 | process/invert_color=false 31 | stream=false 32 | size_limit=0 33 | detect_3d=true 34 | svg/scale=1.0 35 | -------------------------------------------------------------------------------- /good_or_bad.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="StreamTexture" 5 | path="res://.import/good_or_bad.png-ff9124a45a75c06aeb08611769dc421e.stex" 6 | metadata={ 7 | "vram_texture": false 8 | } 9 | 10 | [deps] 11 | 12 | source_file="res://good_or_bad.png" 13 | dest_files=[ "res://.import/good_or_bad.png-ff9124a45a75c06aeb08611769dc421e.stex" ] 14 | 15 | [params] 16 | 17 | compress/mode=0 18 | compress/lossy_quality=0.7 19 | compress/hdr_mode=0 20 | compress/bptc_ldr=0 21 | compress/normal_map=0 22 | flags/repeat=0 23 | flags/filter=false 24 | flags/mipmaps=false 25 | flags/anisotropic=false 26 | flags/srgb=2 27 | process/fix_alpha_border=true 28 | process/premult_alpha=false 29 | process/HDR_as_SRGB=false 30 | process/invert_color=false 31 | stream=false 32 | size_limit=0 33 | detect_3d=true 34 | svg/scale=1.0 35 | -------------------------------------------------------------------------------- /kid_backpack.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="StreamTexture" 5 | path="res://.import/kid_backpack.png-d3ae32504ba3c1bd44d1cee4bbe135cf.stex" 6 | metadata={ 7 | "vram_texture": false 8 | } 9 | 10 | [deps] 11 | 12 | source_file="res://kid_backpack.png" 13 | dest_files=[ "res://.import/kid_backpack.png-d3ae32504ba3c1bd44d1cee4bbe135cf.stex" ] 14 | 15 | [params] 16 | 17 | compress/mode=0 18 | compress/lossy_quality=0.7 19 | compress/hdr_mode=0 20 | compress/bptc_ldr=0 21 | compress/normal_map=0 22 | flags/repeat=0 23 | flags/filter=true 24 | flags/mipmaps=false 25 | flags/anisotropic=false 26 | flags/srgb=2 27 | process/fix_alpha_border=true 28 | process/premult_alpha=false 29 | process/HDR_as_SRGB=false 30 | process/invert_color=false 31 | stream=false 32 | size_limit=0 33 | detect_3d=true 34 | svg/scale=1.0 35 | -------------------------------------------------------------------------------- /scripts/bydlo.gd: -------------------------------------------------------------------------------- 1 | extends KinematicBody 2 | 3 | onready var player = $AnimationPlayer 4 | onready var dialog_box = get_node(dialog_box_path) 5 | 6 | export var dialog_box_path : NodePath 7 | 8 | var current_animation = '' 9 | var facing = 1 # 1 - right, -1 - left 10 | var in_cutscene = false 11 | 12 | # Called when the node enters the scene tree for the first time. 13 | func _ready(): 14 | change_anim('idle') 15 | 16 | func change_anim(animation): 17 | if current_animation != animation: 18 | print("changed animation to ", animation) 19 | player.play(animation) 20 | current_animation = animation 21 | 22 | func _process(delta): 23 | rotation_degrees.y = lerp(rotation_degrees.y, 0 if facing == 1 else 180, 10 * delta) 24 | 25 | func _on_AnimationPlayer_animation_finished(anim_name): 26 | print("finished ", anim_name) 27 | -------------------------------------------------------------------------------- /sign_no_text.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="StreamTexture" 5 | path="res://.import/sign_no_text.png-d58e8d19c8ef8f1fa88fc3730d56ca29.stex" 6 | metadata={ 7 | "vram_texture": false 8 | } 9 | 10 | [deps] 11 | 12 | source_file="res://sign_no_text.png" 13 | dest_files=[ "res://.import/sign_no_text.png-d58e8d19c8ef8f1fa88fc3730d56ca29.stex" ] 14 | 15 | [params] 16 | 17 | compress/mode=0 18 | compress/lossy_quality=0.7 19 | compress/hdr_mode=0 20 | compress/bptc_ldr=0 21 | compress/normal_map=0 22 | flags/repeat=0 23 | flags/filter=true 24 | flags/mipmaps=false 25 | flags/anisotropic=false 26 | flags/srgb=2 27 | process/fix_alpha_border=true 28 | process/premult_alpha=false 29 | process/HDR_as_SRGB=false 30 | process/invert_color=false 31 | stream=false 32 | size_limit=0 33 | detect_3d=true 34 | svg/scale=1.0 35 | -------------------------------------------------------------------------------- /marauder_body.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="StreamTexture" 5 | path="res://.import/marauder_body.png-177e917429a58956d51c4e0a6cfdd9c5.stex" 6 | metadata={ 7 | "vram_texture": false 8 | } 9 | 10 | [deps] 11 | 12 | source_file="res://marauder_body.png" 13 | dest_files=[ "res://.import/marauder_body.png-177e917429a58956d51c4e0a6cfdd9c5.stex" ] 14 | 15 | [params] 16 | 17 | compress/mode=0 18 | compress/lossy_quality=0.7 19 | compress/hdr_mode=0 20 | compress/bptc_ldr=0 21 | compress/normal_map=0 22 | flags/repeat=0 23 | flags/filter=true 24 | flags/mipmaps=false 25 | flags/anisotropic=false 26 | flags/srgb=2 27 | process/fix_alpha_border=true 28 | process/premult_alpha=false 29 | process/HDR_as_SRGB=false 30 | process/invert_color=false 31 | stream=false 32 | size_limit=0 33 | detect_3d=true 34 | svg/scale=1.0 35 | -------------------------------------------------------------------------------- /marauder_face.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="StreamTexture" 5 | path="res://.import/marauder_face.png-9541a2029a1617edcef702340cb9ddeb.stex" 6 | metadata={ 7 | "vram_texture": false 8 | } 9 | 10 | [deps] 11 | 12 | source_file="res://marauder_face.png" 13 | dest_files=[ "res://.import/marauder_face.png-9541a2029a1617edcef702340cb9ddeb.stex" ] 14 | 15 | [params] 16 | 17 | compress/mode=0 18 | compress/lossy_quality=0.7 19 | compress/hdr_mode=0 20 | compress/bptc_ldr=0 21 | compress/normal_map=0 22 | flags/repeat=0 23 | flags/filter=true 24 | flags/mipmaps=false 25 | flags/anisotropic=false 26 | flags/srgb=2 27 | process/fix_alpha_border=true 28 | process/premult_alpha=false 29 | process/HDR_as_SRGB=false 30 | process/invert_color=false 31 | stream=false 32 | size_limit=0 33 | detect_3d=true 34 | svg/scale=1.0 35 | -------------------------------------------------------------------------------- /alcoholic_hat.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="StreamTexture" 5 | path="res://.import/alcoholic_hat.png-0bd6a86adb2eefe3e0ecd4f543e25d9b.stex" 6 | metadata={ 7 | "vram_texture": false 8 | } 9 | 10 | [deps] 11 | 12 | source_file="res://alcoholic_hat.png" 13 | dest_files=[ "res://.import/alcoholic_hat.png-0bd6a86adb2eefe3e0ecd4f543e25d9b.stex" ] 14 | 15 | [params] 16 | 17 | compress/mode=0 18 | compress/lossy_quality=0.7 19 | compress/hdr_mode=0 20 | compress/bptc_ldr=0 21 | compress/normal_map=0 22 | flags/repeat=true 23 | flags/filter=false 24 | flags/mipmaps=false 25 | flags/anisotropic=false 26 | flags/srgb=1 27 | process/fix_alpha_border=true 28 | process/premult_alpha=false 29 | process/HDR_as_SRGB=false 30 | process/invert_color=false 31 | stream=false 32 | size_limit=0 33 | detect_3d=false 34 | svg/scale=1.0 35 | -------------------------------------------------------------------------------- /alcoholic_body.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="StreamTexture" 5 | path="res://.import/alcoholic_body.png-4276fdb4e8d2f27e95a984030a7ac8d6.stex" 6 | metadata={ 7 | "vram_texture": false 8 | } 9 | 10 | [deps] 11 | 12 | source_file="res://alcoholic_body.png" 13 | dest_files=[ "res://.import/alcoholic_body.png-4276fdb4e8d2f27e95a984030a7ac8d6.stex" ] 14 | 15 | [params] 16 | 17 | compress/mode=0 18 | compress/lossy_quality=0.7 19 | compress/hdr_mode=0 20 | compress/bptc_ldr=0 21 | compress/normal_map=0 22 | flags/repeat=true 23 | flags/filter=false 24 | flags/mipmaps=false 25 | flags/anisotropic=false 26 | flags/srgb=1 27 | process/fix_alpha_border=true 28 | process/premult_alpha=false 29 | process/HDR_as_SRGB=false 30 | process/invert_color=false 31 | stream=false 32 | size_limit=0 33 | detect_3d=false 34 | svg/scale=1.0 35 | -------------------------------------------------------------------------------- /alcoholic_face.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="StreamTexture" 5 | path="res://.import/alcoholic_face.png-725f9d17222177421530580e41faf512.stex" 6 | metadata={ 7 | "vram_texture": false 8 | } 9 | 10 | [deps] 11 | 12 | source_file="res://alcoholic_face.png" 13 | dest_files=[ "res://.import/alcoholic_face.png-725f9d17222177421530580e41faf512.stex" ] 14 | 15 | [params] 16 | 17 | compress/mode=0 18 | compress/lossy_quality=0.7 19 | compress/hdr_mode=0 20 | compress/bptc_ldr=0 21 | compress/normal_map=0 22 | flags/repeat=true 23 | flags/filter=false 24 | flags/mipmaps=false 25 | flags/anisotropic=false 26 | flags/srgb=1 27 | process/fix_alpha_border=true 28 | process/premult_alpha=false 29 | process/HDR_as_SRGB=false 30 | process/invert_color=false 31 | stream=false 32 | size_limit=0 33 | detect_3d=false 34 | svg/scale=1.0 35 | -------------------------------------------------------------------------------- /direction_sign.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="StreamTexture" 5 | path="res://.import/direction_sign.png-54fe4e7d944b4886856c33145336134c.stex" 6 | metadata={ 7 | "vram_texture": false 8 | } 9 | 10 | [deps] 11 | 12 | source_file="res://direction_sign.png" 13 | dest_files=[ "res://.import/direction_sign.png-54fe4e7d944b4886856c33145336134c.stex" ] 14 | 15 | [params] 16 | 17 | compress/mode=0 18 | compress/lossy_quality=1.0 19 | compress/hdr_mode=0 20 | compress/bptc_ldr=0 21 | compress/normal_map=0 22 | flags/repeat=true 23 | flags/filter=false 24 | flags/mipmaps=false 25 | flags/anisotropic=false 26 | flags/srgb=1 27 | process/fix_alpha_border=true 28 | process/premult_alpha=false 29 | process/HDR_as_SRGB=false 30 | process/invert_color=false 31 | stream=false 32 | size_limit=0 33 | detect_3d=false 34 | svg/scale=1.0 35 | -------------------------------------------------------------------------------- /marauder_hand_l.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="StreamTexture" 5 | path="res://.import/marauder_hand_l.png-701539335d592d9cddbd0d5e1b8d695c.stex" 6 | metadata={ 7 | "vram_texture": false 8 | } 9 | 10 | [deps] 11 | 12 | source_file="res://marauder_hand_l.png" 13 | dest_files=[ "res://.import/marauder_hand_l.png-701539335d592d9cddbd0d5e1b8d695c.stex" ] 14 | 15 | [params] 16 | 17 | compress/mode=0 18 | compress/lossy_quality=0.7 19 | compress/hdr_mode=0 20 | compress/bptc_ldr=0 21 | compress/normal_map=0 22 | flags/repeat=0 23 | flags/filter=true 24 | flags/mipmaps=false 25 | flags/anisotropic=false 26 | flags/srgb=2 27 | process/fix_alpha_border=true 28 | process/premult_alpha=false 29 | process/HDR_as_SRGB=false 30 | process/invert_color=false 31 | stream=false 32 | size_limit=0 33 | detect_3d=true 34 | svg/scale=1.0 35 | -------------------------------------------------------------------------------- /marauder_hand_r.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="StreamTexture" 5 | path="res://.import/marauder_hand_r.png-7ced1c1ddef3e36786d644588b283917.stex" 6 | metadata={ 7 | "vram_texture": false 8 | } 9 | 10 | [deps] 11 | 12 | source_file="res://marauder_hand_r.png" 13 | dest_files=[ "res://.import/marauder_hand_r.png-7ced1c1ddef3e36786d644588b283917.stex" ] 14 | 15 | [params] 16 | 17 | compress/mode=0 18 | compress/lossy_quality=0.7 19 | compress/hdr_mode=0 20 | compress/bptc_ldr=0 21 | compress/normal_map=0 22 | flags/repeat=0 23 | flags/filter=true 24 | flags/mipmaps=false 25 | flags/anisotropic=false 26 | flags/srgb=2 27 | process/fix_alpha_border=true 28 | process/premult_alpha=false 29 | process/HDR_as_SRGB=false 30 | process/invert_color=false 31 | stream=false 32 | size_limit=0 33 | detect_3d=true 34 | svg/scale=1.0 35 | -------------------------------------------------------------------------------- /alcoholic_hand_l.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="StreamTexture" 5 | path="res://.import/alcoholic_hand_l.png-3d367e2965319a34e15f771c00de0b03.stex" 6 | metadata={ 7 | "vram_texture": false 8 | } 9 | 10 | [deps] 11 | 12 | source_file="res://alcoholic_hand_l.png" 13 | dest_files=[ "res://.import/alcoholic_hand_l.png-3d367e2965319a34e15f771c00de0b03.stex" ] 14 | 15 | [params] 16 | 17 | compress/mode=0 18 | compress/lossy_quality=0.7 19 | compress/hdr_mode=0 20 | compress/bptc_ldr=0 21 | compress/normal_map=0 22 | flags/repeat=0 23 | flags/filter=true 24 | flags/mipmaps=false 25 | flags/anisotropic=false 26 | flags/srgb=2 27 | process/fix_alpha_border=true 28 | process/premult_alpha=false 29 | process/HDR_as_SRGB=false 30 | process/invert_color=false 31 | stream=false 32 | size_limit=0 33 | detect_3d=true 34 | svg/scale=1.0 35 | -------------------------------------------------------------------------------- /alcoholic_hand_r.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="StreamTexture" 5 | path="res://.import/alcoholic_hand_r.png-ad469063ccbdaa5272ad30df0af7c88a.stex" 6 | metadata={ 7 | "vram_texture": false 8 | } 9 | 10 | [deps] 11 | 12 | source_file="res://alcoholic_hand_r.png" 13 | dest_files=[ "res://.import/alcoholic_hand_r.png-ad469063ccbdaa5272ad30df0af7c88a.stex" ] 14 | 15 | [params] 16 | 17 | compress/mode=0 18 | compress/lossy_quality=0.7 19 | compress/hdr_mode=0 20 | compress/bptc_ldr=0 21 | compress/normal_map=0 22 | flags/repeat=0 23 | flags/filter=true 24 | flags/mipmaps=false 25 | flags/anisotropic=false 26 | flags/srgb=2 27 | process/fix_alpha_border=true 28 | process/premult_alpha=false 29 | process/HDR_as_SRGB=false 30 | process/invert_color=false 31 | stream=false 32 | size_limit=0 33 | detect_3d=true 34 | svg/scale=1.0 35 | -------------------------------------------------------------------------------- /prefabs/text_bubble_panel.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=3 format=2] 2 | 3 | [sub_resource type="DynamicFontData" id=1] 4 | antialiased = false 5 | hinting = 0 6 | font_path = "res://bedstead.otf" 7 | 8 | [sub_resource type="DynamicFont" id=2] 9 | size = 20 10 | outline_size = 2 11 | outline_color = Color( 0, 0, 0, 1 ) 12 | font_data = SubResource( 1 ) 13 | 14 | [node name="Panel" type="ColorRect"] 15 | margin_right = 256.0 16 | margin_bottom = 128.0 17 | color = Color( 1, 1, 1, 0.196078 ) 18 | __meta__ = { 19 | "_edit_use_anchors_": false 20 | } 21 | 22 | [node name="Label" type="Label" parent="."] 23 | margin_right = 256.0 24 | margin_bottom = 128.0 25 | custom_fonts/font = SubResource( 2 ) 26 | custom_colors/font_color = Color( 1, 1, 1, 1 ) 27 | align = 1 28 | valign = 1 29 | autowrap = true 30 | __meta__ = { 31 | "_edit_use_anchors_": false 32 | } 33 | -------------------------------------------------------------------------------- /alcoholic_bottle.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="StreamTexture" 5 | path="res://.import/alcoholic_bottle.png-3da923ad2de1b6c8a1b2ce4285d7f38b.stex" 6 | metadata={ 7 | "vram_texture": false 8 | } 9 | 10 | [deps] 11 | 12 | source_file="res://alcoholic_bottle.png" 13 | dest_files=[ "res://.import/alcoholic_bottle.png-3da923ad2de1b6c8a1b2ce4285d7f38b.stex" ] 14 | 15 | [params] 16 | 17 | compress/mode=0 18 | compress/lossy_quality=0.7 19 | compress/hdr_mode=0 20 | compress/bptc_ldr=0 21 | compress/normal_map=0 22 | flags/repeat=true 23 | flags/filter=false 24 | flags/mipmaps=false 25 | flags/anisotropic=false 26 | flags/srgb=1 27 | process/fix_alpha_border=true 28 | process/premult_alpha=false 29 | process/HDR_as_SRGB=false 30 | process/invert_color=false 31 | stream=false 32 | size_limit=0 33 | detect_3d=false 34 | svg/scale=1.0 35 | -------------------------------------------------------------------------------- /scripts/EndingEvent.gd: -------------------------------------------------------------------------------- 1 | extends Area 2 | 3 | onready var player = get_tree().get_nodes_in_group('Player')[0] 4 | onready var ending_area = $'../EndingAreaRight' 5 | 6 | func _on_EndingEvent_body_entered(body): 7 | print('Триггер концовки',$"/root/global".ignored_sign,$"/root/global".kicked_alco) 8 | if $"/root/global".ignored_sign: 9 | player.in_cutscene = true 10 | player.dialog_box.show_text('блин, надо было ту табличку пнуть...') 11 | yield(get_tree().create_timer(3.0), "timeout") 12 | $"/root/global".ending = 'ПЛОХАЯ' 13 | ending_area.tr_e() 14 | return 15 | if $"/root/global".kicked_alco: 16 | $"/root/global".ending = 'НОРМ' 17 | yield(get_tree().create_timer(0.5), "timeout") 18 | ending_area.tr_e() 19 | return 20 | $"/root/global".ending = 'ХОРОШАЯ' 21 | yield(get_tree().create_timer(0.5), "timeout") 22 | ending_area.tr_e() 23 | -------------------------------------------------------------------------------- /marauder_knoif_mate.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="StreamTexture" 5 | path="res://.import/marauder_knoif_mate.png-1dd91a1cdd38d63adff4a0d4ca021a20.stex" 6 | metadata={ 7 | "vram_texture": false 8 | } 9 | 10 | [deps] 11 | 12 | source_file="res://marauder_knoif_mate.png" 13 | dest_files=[ "res://.import/marauder_knoif_mate.png-1dd91a1cdd38d63adff4a0d4ca021a20.stex" ] 14 | 15 | [params] 16 | 17 | compress/mode=0 18 | compress/lossy_quality=0.7 19 | compress/hdr_mode=0 20 | compress/bptc_ldr=0 21 | compress/normal_map=0 22 | flags/repeat=0 23 | flags/filter=true 24 | flags/mipmaps=false 25 | flags/anisotropic=false 26 | flags/srgb=2 27 | process/fix_alpha_border=true 28 | process/premult_alpha=false 29 | process/HDR_as_SRGB=false 30 | process/invert_color=false 31 | stream=false 32 | size_limit=0 33 | detect_3d=true 34 | svg/scale=1.0 35 | -------------------------------------------------------------------------------- /gameover.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=4 format=2] 2 | 3 | [ext_resource path="res://scripts/gameover.gd" type="Script" id=1] 4 | 5 | [sub_resource type="DynamicFontData" id=1] 6 | antialiased = false 7 | hinting = 0 8 | font_path = "res://bedstead.otf" 9 | 10 | [sub_resource type="DynamicFont" id=2] 11 | size = 90 12 | outline_size = 2 13 | outline_color = Color( 0, 0, 0, 1 ) 14 | font_data = SubResource( 1 ) 15 | 16 | [node name="Control" type="ColorRect"] 17 | anchor_right = 1.0 18 | anchor_bottom = 1.0 19 | color = Color( 0, 0, 0, 1 ) 20 | script = ExtResource( 1 ) 21 | __meta__ = { 22 | "_edit_use_anchors_": false 23 | } 24 | 25 | [node name="Label" type="Label" parent="."] 26 | anchor_right = 1.0 27 | anchor_bottom = 1.0 28 | custom_fonts/font = SubResource( 2 ) 29 | custom_colors/font_color = Color( 1, 1, 1, 1 ) 30 | text = "ЛОХ" 31 | align = 1 32 | valign = 1 33 | autowrap = true 34 | uppercase = true 35 | -------------------------------------------------------------------------------- /scripts/alcoholic.gd: -------------------------------------------------------------------------------- 1 | extends KinematicBody 2 | 3 | onready var player = $AnimationPlayer 4 | onready var dialog_box = get_node(dialog_box_path) 5 | 6 | export var dialog_box_path : NodePath 7 | 8 | var current_animation = '' 9 | var facing = 1 # 1 - right, -1 - left 10 | var falling = false 11 | 12 | # Called when the node enters the scene tree for the first time. 13 | func _ready(): 14 | change_anim('alco_idle') 15 | 16 | func change_anim(animation): 17 | if current_animation != animation: 18 | print("changed animation to ", animation) 19 | player.play(animation) 20 | current_animation = animation 21 | 22 | func _process(delta): 23 | rotation_degrees.y = lerp(rotation_degrees.y, 0 if facing == 1 else 180, 10 * delta) 24 | 25 | func _on_AnimationPlayer_animation_finished(anim_name): 26 | if anim_name == 'fall': 27 | change_anim('sleep') 28 | 29 | func fall(): 30 | $'CollisionShape'.disabled = true 31 | falling = true 32 | change_anim('fall') 33 | -------------------------------------------------------------------------------- /mud.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="StreamTexture" 5 | path.s3tc="res://.import/mud.png-fc46442845fb42543e8b05d08615aca5.s3tc.stex" 6 | path.etc="res://.import/mud.png-fc46442845fb42543e8b05d08615aca5.etc.stex" 7 | metadata={ 8 | "imported_formats": [ "s3tc", "etc" ], 9 | "vram_texture": true 10 | } 11 | 12 | [deps] 13 | 14 | source_file="res://mud.png" 15 | dest_files=[ "res://.import/mud.png-fc46442845fb42543e8b05d08615aca5.s3tc.stex", "res://.import/mud.png-fc46442845fb42543e8b05d08615aca5.etc.stex" ] 16 | 17 | [params] 18 | 19 | compress/mode=2 20 | compress/lossy_quality=1.0 21 | compress/hdr_mode=0 22 | compress/bptc_ldr=0 23 | compress/normal_map=0 24 | flags/repeat=true 25 | flags/filter=false 26 | flags/mipmaps=false 27 | flags/anisotropic=false 28 | flags/srgb=1 29 | process/fix_alpha_border=true 30 | process/premult_alpha=false 31 | process/HDR_as_SRGB=false 32 | process/invert_color=false 33 | stream=false 34 | size_limit=0 35 | detect_3d=false 36 | svg/scale=1.0 37 | -------------------------------------------------------------------------------- /scripts/choice_area.gd: -------------------------------------------------------------------------------- 1 | extends Area 2 | 3 | signal good 4 | signal bad 5 | signal first 6 | signal second 7 | 8 | export var question_panel_scene : String = 'res://prefabs/question_panel_yn.tscn' 9 | export var text : String = '' 10 | export var one_shot : bool = true 11 | export var unlock_after_answer : bool = true 12 | 13 | onready var question_panel = load(question_panel_scene).instance() 14 | onready var player = get_tree().get_nodes_in_group('Player')[0] 15 | 16 | var triggered_question = false 17 | 18 | func _ready(): 19 | question_panel.visible = false 20 | question_panel.connect('answer', self, 'answer') 21 | question_panel.get_node('./VBoxContainer/Label').text = text 22 | add_child(question_panel) 23 | 24 | func _on_ChoiceArea_body_entered(body): 25 | if triggered_question or body.name != 'Character': 26 | return 27 | tr_q() 28 | 29 | func tr_q(): 30 | triggered_question = true 31 | question_panel.visible = true 32 | player.in_cutscene = true 33 | player.change_anim('idle') 34 | 35 | func answer(s): 36 | emit_signal(s) 37 | if unlock_after_answer: 38 | player.in_cutscene = false 39 | if one_shot: 40 | queue_free() 41 | else: 42 | triggered_question = false 43 | -------------------------------------------------------------------------------- /char_idle.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="Animation" format=2] 2 | 3 | [resource] 4 | resource_name = "idle" 5 | length = 6.0 6 | loop = true 7 | tracks/0/type = "value" 8 | tracks/0/path = NodePath("Visual/Face:translation") 9 | tracks/0/interp = 2 10 | tracks/0/loop_wrap = true 11 | tracks/0/imported = false 12 | tracks/0/enabled = true 13 | tracks/0/keys = { 14 | "times": PoolRealArray( 0, 1, 1.5, 2, 2.1, 3.1, 3.2, 4.2, 4.3 ), 15 | "transitions": PoolRealArray( 1, 1, 1, 1, 1, 1, 1, 1, 1 ), 16 | "update": 0, 17 | "values": [ Vector3( 0, 0, 0 ), Vector3( 0, 0, 0 ), Vector3( 0, 0, 0 ), Vector3( 0, 0, 0 ), Vector3( -0.03, 0.03, 0 ), Vector3( -0.03, 0.03, 0 ), Vector3( 0.03, 0.02, 0 ), Vector3( 0.03, 0.02, 0 ), Vector3( 0, 0, 0 ) ] 18 | } 19 | tracks/1/type = "value" 20 | tracks/1/path = NodePath("Visual:translation") 21 | tracks/1/interp = 1 22 | tracks/1/loop_wrap = true 23 | tracks/1/imported = false 24 | tracks/1/enabled = true 25 | tracks/1/keys = { 26 | "times": PoolRealArray( 0, 1, 2, 3, 4, 5 ), 27 | "transitions": PoolRealArray( 1, 1, 1, 1, 1, 1 ), 28 | "update": 0, 29 | "values": [ Vector3( 0, 0, 0 ), Vector3( 0, 0.02, 0 ), Vector3( 0, 0, 0 ), Vector3( 0, 0.02, 0 ), Vector3( 0, 0, 0 ), Vector3( 0, 0.02, 0 ) ] 30 | } 31 | -------------------------------------------------------------------------------- /prefabs/text_bubble.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=6 format=2] 2 | 3 | [ext_resource path="res://prefabs/text_bubble_panel.tscn" type="PackedScene" id=1] 4 | [ext_resource path="res://scripts/text_bubble.gd" type="Script" id=2] 5 | 6 | [sub_resource type="QuadMesh" id=1] 7 | size = Vector2( 2, 1 ) 8 | 9 | [sub_resource type="ViewportTexture" id=2] 10 | viewport_path = NodePath("Viewport") 11 | 12 | [sub_resource type="SpatialMaterial" id=3] 13 | resource_local_to_scene = true 14 | flags_transparent = true 15 | flags_unshaded = true 16 | params_billboard_mode = 1 17 | params_billboard_keep_scale = true 18 | albedo_texture = SubResource( 2 ) 19 | 20 | [node name="TextBubble" type="Spatial"] 21 | script = ExtResource( 2 ) 22 | 23 | [node name="Viewport" type="Viewport" parent="."] 24 | size = Vector2( 256, 128 ) 25 | transparent_bg = true 26 | hdr = false 27 | usage = 0 28 | render_target_v_flip = true 29 | gui_disable_input = true 30 | 31 | [node name="Panel" parent="Viewport" instance=ExtResource( 1 )] 32 | 33 | [node name="MeshInstance" type="MeshInstance" parent="."] 34 | mesh = SubResource( 1 ) 35 | material/0 = SubResource( 3 ) 36 | 37 | [node name="Timer" type="Timer" parent="."] 38 | one_shot = true 39 | 40 | [connection signal="timeout" from="Timer" to="." method="_on_Timer_timeout"] 41 | -------------------------------------------------------------------------------- /fall.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="Animation" format=2] 2 | 3 | [resource] 4 | resource_name = "fall" 5 | length = 5.0 6 | tracks/0/type = "value" 7 | tracks/0/path = NodePath("Bottle:translation") 8 | tracks/0/interp = 2 9 | tracks/0/loop_wrap = true 10 | tracks/0/imported = false 11 | tracks/0/enabled = true 12 | tracks/0/keys = { 13 | "times": PoolRealArray( 0, 0.2, 0.3, 0.4, 5 ), 14 | "transitions": PoolRealArray( 1, 1, 1, 1, 1 ), 15 | "update": 0, 16 | "values": [ Vector3( 0, 0, 0 ), Vector3( 0, -0.75, 0 ), Vector3( 0, -0.7, 0 ), Vector3( 0, -0.75, 0 ), Vector3( 0, -0.75, 0 ) ] 17 | } 18 | tracks/1/type = "value" 19 | tracks/1/path = NodePath("Visual:translation") 20 | tracks/1/interp = 2 21 | tracks/1/loop_wrap = true 22 | tracks/1/imported = false 23 | tracks/1/enabled = true 24 | tracks/1/keys = { 25 | "times": PoolRealArray( 0, 0.4, 1 ), 26 | "transitions": PoolRealArray( 1, 1, 1 ), 27 | "update": 0, 28 | "values": [ Vector3( 0, 0, 0 ), Vector3( 0, 0, 0 ), Vector3( 0, -0.5, 0.5 ) ] 29 | } 30 | tracks/2/type = "value" 31 | tracks/2/path = NodePath("Visual:rotation_degrees") 32 | tracks/2/interp = 2 33 | tracks/2/loop_wrap = true 34 | tracks/2/imported = false 35 | tracks/2/enabled = true 36 | tracks/2/keys = { 37 | "times": PoolRealArray( 0, 0.4, 1 ), 38 | "transitions": PoolRealArray( 1, 1, 1 ), 39 | "update": 0, 40 | "values": [ Vector3( 0, 0, 0 ), Vector3( 0, 0, 0 ), Vector3( 90, 0, 0 ) ] 41 | } 42 | -------------------------------------------------------------------------------- /prefabs/direction_sign.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=9 format=2] 2 | 3 | [ext_resource path="res://direction_sign.png" type="Texture" id=1] 4 | [ext_resource path="res://star.png" type="Texture" id=2] 5 | [ext_resource path="res://scripts/kick.gd" type="Script" id=3] 6 | [ext_resource path="res://sign_flyawaynow.tres" type="Animation" id=4] 7 | 8 | [sub_resource type="SpatialMaterial" id=1] 9 | flags_transparent = true 10 | flags_unshaded = true 11 | params_cull_mode = 2 12 | albedo_texture = ExtResource( 2 ) 13 | 14 | [sub_resource type="QuadMesh" id=2] 15 | material = SubResource( 1 ) 16 | 17 | [sub_resource type="SpatialMaterial" id=3] 18 | flags_transparent = true 19 | flags_unshaded = true 20 | params_cull_mode = 2 21 | albedo_texture = ExtResource( 1 ) 22 | 23 | [sub_resource type="QuadMesh" id=4] 24 | material = SubResource( 3 ) 25 | 26 | [node name="Sign" type="Spatial"] 27 | script = ExtResource( 3 ) 28 | 29 | [node name="MeshInstance" type="MeshInstance" parent="."] 30 | transform = Transform( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ) 31 | visible = false 32 | mesh = SubResource( 2 ) 33 | material/0 = null 34 | 35 | [node name="MeshInstance2" type="MeshInstance" parent="."] 36 | mesh = SubResource( 4 ) 37 | material/0 = null 38 | 39 | [node name="AnimationPlayer" type="AnimationPlayer" parent="."] 40 | anims/flyawaynow = ExtResource( 4 ) 41 | 42 | [connection signal="animation_finished" from="AnimationPlayer" to="." method="_on_AnimationPlayer_animation_finished"] 43 | -------------------------------------------------------------------------------- /prefabs/question_panel_yn.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=4 format=2] 2 | 3 | [ext_resource path="res://font.tres" type="DynamicFont" id=1] 4 | [ext_resource path="res://good_or_bad.png" type="Texture" id=2] 5 | [ext_resource path="res://scripts/question_panel_yn.gd" type="Script" id=3] 6 | 7 | [node name="QuestionPanelYN" type="Control"] 8 | anchor_right = 1.0 9 | anchor_bottom = 1.0 10 | script = ExtResource( 3 ) 11 | __meta__ = { 12 | "_edit_use_anchors_": false 13 | } 14 | 15 | [node name="VBoxContainer" type="VBoxContainer" parent="."] 16 | anchor_left = 0.2 17 | anchor_top = 0.2 18 | anchor_right = 0.8 19 | anchor_bottom = 0.8 20 | grow_horizontal = 2 21 | grow_vertical = 2 22 | alignment = 1 23 | __meta__ = { 24 | "_edit_use_anchors_": false 25 | } 26 | 27 | [node name="Label" type="Label" parent="VBoxContainer"] 28 | margin_right = 614.0 29 | margin_bottom = 284.0 30 | grow_horizontal = 2 31 | grow_vertical = 2 32 | size_flags_horizontal = 3 33 | size_flags_vertical = 3 34 | custom_fonts/font = ExtResource( 1 ) 35 | text = "y/n?" 36 | align = 1 37 | valign = 1 38 | autowrap = true 39 | 40 | [node name="TextureRect" type="TextureRect" parent="VBoxContainer"] 41 | margin_top = 288.0 42 | margin_right = 614.0 43 | margin_bottom = 360.0 44 | size_flags_vertical = 3 45 | size_flags_stretch_ratio = 0.25 46 | texture = ExtResource( 2 ) 47 | expand = true 48 | stretch_mode = 6 49 | 50 | [connection signal="gui_input" from="." to="." method="_on_QuestionPanelYN_gui_input"] 51 | -------------------------------------------------------------------------------- /ending.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=5 format=2] 2 | 3 | [ext_resource path="res://scripts/ending.gd" type="Script" id=1] 4 | [ext_resource path="res://font.tres" type="DynamicFont" id=2] 5 | 6 | [sub_resource type="DynamicFontData" id=1] 7 | antialiased = false 8 | hinting = 0 9 | font_path = "res://bedstead.otf" 10 | 11 | [sub_resource type="DynamicFont" id=2] 12 | size = 90 13 | outline_size = 2 14 | outline_color = Color( 0, 0, 0, 1 ) 15 | font_data = SubResource( 1 ) 16 | 17 | [node name="Control" type="ColorRect"] 18 | anchor_right = 1.0 19 | anchor_bottom = 1.0 20 | color = Color( 0, 0, 0, 1 ) 21 | script = ExtResource( 1 ) 22 | __meta__ = { 23 | "_edit_use_anchors_": false 24 | } 25 | 26 | [node name="Label" type="Label" parent="."] 27 | anchor_right = 1.0 28 | anchor_bottom = 1.0 29 | custom_fonts/font = SubResource( 2 ) 30 | custom_colors/font_color = Color( 1, 1, 1, 1 ) 31 | text = "КОНЕЦ" 32 | align = 1 33 | valign = 1 34 | autowrap = true 35 | uppercase = true 36 | __meta__ = { 37 | "_edit_use_anchors_": false 38 | } 39 | 40 | [node name="Label2" type="Label" parent="."] 41 | anchor_top = 0.659 42 | anchor_right = 0.41 43 | anchor_bottom = 1.0 44 | custom_fonts/font = ExtResource( 2 ) 45 | custom_colors/font_color = Color( 1, 1, 1, 1 ) 46 | text = "авторы этого кала: rndtrash и NewPirateOFUASeas 47 | 48 | отдельное спасибо маме, папе, брату и моим хомякам: джерри, снежку и семечке" 49 | valign = 2 50 | autowrap = true 51 | __meta__ = { 52 | "_edit_use_anchors_": false 53 | } 54 | -------------------------------------------------------------------------------- /scripts/AlcoEvent.gd: -------------------------------------------------------------------------------- 1 | extends Area 2 | 3 | onready var player = get_tree().get_nodes_in_group('Player')[0] 4 | onready var alco = $'../Alcoholic' 5 | onready var choice_area = $'ChoiceAreaKickAlco' 6 | onready var global_state = get_tree().get_nodes_in_group('root')[0] 7 | 8 | func _ready(): 9 | pass 10 | 11 | func _on_BydloEvent_body_entered(body): 12 | player.in_cutscene = true 13 | player.change_anim('idle') 14 | player.facing = 1 15 | player.dialog_box.show_text('эй') 16 | yield(get_tree().create_timer(2.0), "timeout") 17 | alco.facing = -1 18 | alco.dialog_box.show_text('*ик*') 19 | yield(get_tree().create_timer(2.0), "timeout") 20 | choice_area.tr_q() 21 | 22 | func _on_ChoiceAreaKickAlco_bad(): 23 | $"/root/global".kicked_alco = false 24 | yield(get_tree().create_timer(2.0), "timeout") 25 | player.dialog_box.show_text('отличная работа!') 26 | yield(get_tree().create_timer(2.0), "timeout") 27 | player.dialog_box.show_text('продолжай в том же духе!') 28 | yield(get_tree().create_timer(2.0), "timeout") 29 | alco.dialog_box.show_text('млмлемлмеъе *ик*') 30 | alco.translation.z -= 0.5 31 | player.in_cutscene = false 32 | queue_free() 33 | 34 | func _on_ChoiceAreaKickAlco_good(): 35 | $"/root/global".kicked_alco = true 36 | player.dialog_box.show_text('получай') 37 | yield(get_tree().create_timer(2.0), "timeout") 38 | alco.fall() 39 | yield(get_tree().create_timer(5.0), "timeout") 40 | alco.dialog_box.show_text('*хрр*') 41 | yield(get_tree().create_timer(1.0), "timeout") 42 | player.dialog_box.show_text('мда') 43 | player.in_cutscene = false 44 | queue_free() 45 | -------------------------------------------------------------------------------- /sleep.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="Animation" format=2] 2 | 3 | [resource] 4 | resource_name = "sleep" 5 | length = 3.0 6 | loop = true 7 | tracks/0/type = "value" 8 | tracks/0/path = NodePath("Bottle:translation") 9 | tracks/0/interp = 1 10 | tracks/0/loop_wrap = true 11 | tracks/0/imported = false 12 | tracks/0/enabled = true 13 | tracks/0/keys = { 14 | "times": PoolRealArray( 0, 3 ), 15 | "transitions": PoolRealArray( 1, 1 ), 16 | "update": 0, 17 | "values": [ Vector3( 0, -0.75, 0 ), Vector3( 0, -0.75, 0 ) ] 18 | } 19 | tracks/1/type = "value" 20 | tracks/1/path = NodePath("Visual:translation") 21 | tracks/1/interp = 1 22 | tracks/1/loop_wrap = true 23 | tracks/1/imported = false 24 | tracks/1/enabled = true 25 | tracks/1/keys = { 26 | "times": PoolRealArray( 0, 3 ), 27 | "transitions": PoolRealArray( 1, 1 ), 28 | "update": 0, 29 | "values": [ Vector3( 0, -0.5, 0.5 ), Vector3( 0, -0.5, 0.5 ) ] 30 | } 31 | tracks/2/type = "value" 32 | tracks/2/path = NodePath("Visual:rotation_degrees") 33 | tracks/2/interp = 1 34 | tracks/2/loop_wrap = true 35 | tracks/2/imported = false 36 | tracks/2/enabled = true 37 | tracks/2/keys = { 38 | "times": PoolRealArray( 0, 3 ), 39 | "transitions": PoolRealArray( 1, 1 ), 40 | "update": 0, 41 | "values": [ Vector3( 90, 0, 0 ), Vector3( 90, 0, 0 ) ] 42 | } 43 | tracks/3/type = "value" 44 | tracks/3/path = NodePath("Visual:scale") 45 | tracks/3/interp = 1 46 | tracks/3/loop_wrap = true 47 | tracks/3/imported = false 48 | tracks/3/enabled = true 49 | tracks/3/keys = { 50 | "times": PoolRealArray( 0, 1, 2, 3 ), 51 | "transitions": PoolRealArray( 1, 1, 1, 1 ), 52 | "update": 0, 53 | "values": [ Vector3( 1, 1, 1 ), Vector3( 1, 1, 2 ), Vector3( 1, 1, 1 ), Vector3( 1, 1, 1 ) ] 54 | } 55 | -------------------------------------------------------------------------------- /scripts/character.gd: -------------------------------------------------------------------------------- 1 | extends KinematicBody 2 | 3 | onready var player = $AnimationPlayer 4 | onready var dialog_box = get_node(dialog_box_path) 5 | onready var footsteps = $AudioStreamPlayer3D 6 | 7 | export var dialog_box_path : NodePath 8 | 9 | var current_animation = '' 10 | var facing = 1 # 1 - right, -1 - left 11 | var in_cutscene = false 12 | var moving = false 13 | var playing_footsteps = false 14 | 15 | # Called when the node enters the scene tree for the first time. 16 | func _ready(): 17 | change_anim('idle') 18 | 19 | func set_footsteps(): 20 | if moving != playing_footsteps: 21 | if moving: 22 | footsteps.play() 23 | else: 24 | footsteps.stop() 25 | playing_footsteps = moving 26 | 27 | func change_anim(animation): 28 | if current_animation != animation: 29 | print("changed animation to ", animation) 30 | player.play(animation) 31 | current_animation = animation 32 | 33 | func _process(delta): 34 | if not in_cutscene: 35 | if Input.is_action_pressed("character_left"): 36 | moving = true 37 | facing = -1 38 | move_and_collide(Vector3.RIGHT * facing * delta * 5 if OS.is_debug_build() else 1) 39 | change_anim('walk') 40 | elif Input.is_action_pressed("character_right"): 41 | moving = true 42 | facing = 1 43 | move_and_collide(Vector3.RIGHT * facing * delta * 5 if OS.is_debug_build() else 1) 44 | change_anim('walk') 45 | else: 46 | moving = false 47 | change_anim('idle') 48 | else: 49 | moving = false 50 | 51 | set_footsteps() 52 | ####################### 53 | rotation_degrees.y = lerp(rotation_degrees.y, 0 if facing == 1 else 180, 10 * delta) 54 | 55 | func _on_AnimationPlayer_animation_finished(anim_name): 56 | print("finished ", anim_name) 57 | 58 | func die(): 59 | get_tree().change_scene("res://gameover.tscn") 60 | -------------------------------------------------------------------------------- /prefabs/question_panel_twoopts.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=3 format=2] 2 | 3 | [ext_resource path="res://font.tres" type="DynamicFont" id=1] 4 | [ext_resource path="res://scripts/question_panel_twoopts.gd" type="Script" id=2] 5 | 6 | [node name="QuestionPanelYN" type="Control"] 7 | anchor_right = 1.0 8 | anchor_bottom = 1.0 9 | script = ExtResource( 2 ) 10 | __meta__ = { 11 | "_edit_use_anchors_": false 12 | } 13 | 14 | [node name="VBoxContainer" type="VBoxContainer" parent="."] 15 | anchor_left = 0.2 16 | anchor_top = 0.2 17 | anchor_right = 0.8 18 | anchor_bottom = 0.8 19 | grow_horizontal = 2 20 | grow_vertical = 2 21 | alignment = 1 22 | __meta__ = { 23 | "_edit_use_anchors_": false 24 | } 25 | 26 | [node name="Label" type="Label" parent="VBoxContainer"] 27 | margin_right = 614.0 28 | margin_bottom = 300.0 29 | grow_horizontal = 2 30 | grow_vertical = 2 31 | size_flags_horizontal = 3 32 | size_flags_vertical = 3 33 | custom_fonts/font = ExtResource( 1 ) 34 | text = "y/n?" 35 | align = 1 36 | valign = 1 37 | autowrap = true 38 | 39 | [node name="VBoxContainer" type="VBoxContainer" parent="VBoxContainer"] 40 | margin_top = 304.0 41 | margin_right = 614.0 42 | margin_bottom = 360.0 43 | 44 | [node name="1" type="Button" parent="VBoxContainer/VBoxContainer"] 45 | margin_right = 614.0 46 | margin_bottom = 26.0 47 | custom_fonts/font = ExtResource( 1 ) 48 | 49 | [node name="2" type="Button" parent="VBoxContainer/VBoxContainer"] 50 | margin_top = 30.0 51 | margin_right = 614.0 52 | margin_bottom = 56.0 53 | custom_fonts/font = ExtResource( 1 ) 54 | 55 | [connection signal="gui_input" from="." to="." method="_on_QuestionPanelYN_gui_input"] 56 | [connection signal="pressed" from="VBoxContainer/VBoxContainer/1" to="." method="_on_1_pressed"] 57 | [connection signal="pressed" from="VBoxContainer/VBoxContainer/2" to="." method="_on_2_pressed"] 58 | -------------------------------------------------------------------------------- /char_walk.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="Animation" format=2] 2 | 3 | [resource] 4 | resource_name = "walk" 5 | length = 0.8 6 | loop = true 7 | tracks/0/type = "value" 8 | tracks/0/path = NodePath("Visual/Hat:translation") 9 | tracks/0/interp = 2 10 | tracks/0/loop_wrap = true 11 | tracks/0/imported = false 12 | tracks/0/enabled = true 13 | tracks/0/keys = { 14 | "times": PoolRealArray( 0, 0.2, 0.3, 0.4, 0.6, 0.7 ), 15 | "transitions": PoolRealArray( 1, 1, 1, 1, 1, 1 ), 16 | "update": 0, 17 | "values": [ Vector3( 0, 0, 0 ), Vector3( 0, 0.05, 0 ), Vector3( 0, 0, 0 ), Vector3( 0, 0, 0 ), Vector3( 0, 0.05, 0 ), Vector3( 0, 0, 0 ) ] 18 | } 19 | tracks/1/type = "value" 20 | tracks/1/path = NodePath("Visual:translation") 21 | tracks/1/interp = 2 22 | tracks/1/loop_wrap = true 23 | tracks/1/imported = false 24 | tracks/1/enabled = true 25 | tracks/1/keys = { 26 | "times": PoolRealArray( 0, 0.2, 0.4, 0.6 ), 27 | "transitions": PoolRealArray( 1, 1, 1, 1 ), 28 | "update": 0, 29 | "values": [ Vector3( 0, 0, 0 ), Vector3( 0, 0.1, 0 ), Vector3( 0, 0, 0 ), Vector3( 0, 0.1, 0 ) ] 30 | } 31 | tracks/2/type = "value" 32 | tracks/2/path = NodePath("Visual:rotation_degrees") 33 | tracks/2/interp = 2 34 | tracks/2/loop_wrap = true 35 | tracks/2/imported = false 36 | tracks/2/enabled = true 37 | tracks/2/keys = { 38 | "times": PoolRealArray( 0, 0.2, 0.4, 0.6 ), 39 | "transitions": PoolRealArray( 1, 1, 1, 1 ), 40 | "update": 0, 41 | "values": [ Vector3( 0, 0, 0 ), Vector3( 0, 0, 10 ), Vector3( 0, 0, 0 ), Vector3( 0, 0, -10 ) ] 42 | } 43 | tracks/3/type = "value" 44 | tracks/3/path = NodePath("Visual/Face:translation") 45 | tracks/3/interp = 1 46 | tracks/3/loop_wrap = true 47 | tracks/3/imported = false 48 | tracks/3/enabled = true 49 | tracks/3/keys = { 50 | "times": PoolRealArray( 0 ), 51 | "transitions": PoolRealArray( 1 ), 52 | "update": 0, 53 | "values": [ Vector3( 0, 0, 0 ) ] 54 | } 55 | -------------------------------------------------------------------------------- /scripts/BydloEvent.gd: -------------------------------------------------------------------------------- 1 | extends Area 2 | 3 | onready var player = get_tree().get_nodes_in_group('Player')[0] 4 | onready var bydlo = $'../Bydlo' 5 | onready var choice_area = $'ChoiceAreaZadacha' 6 | onready var global_state = get_tree().get_nodes_in_group('root')[0] 7 | 8 | func _ready(): 9 | choice_area.question_panel.first.text = '[Сарказм]' 10 | choice_area.question_panel.second.text = 'Съем пирожок...' 11 | 12 | func _on_BydloEvent_body_entered(body): 13 | player.in_cutscene = true 14 | player.change_anim('idle') 15 | bydlo.facing = -1 16 | bydlo.dialog_box.show_text('эй ты') 17 | yield(get_tree().create_timer(2.0), "timeout") 18 | player.dialog_box.show_text('хто, я?)') 19 | yield(get_tree().create_timer(2.0), "timeout") 20 | if not $"/root/global".ignored_sign: 21 | bydlo.dialog_box.show_text('хорошо табличку пнул') 22 | yield(get_tree().create_timer(2.0), "timeout") 23 | player.dialog_box.show_text('ну, спасибо') 24 | bydlo.translation.z -= 0.5 25 | player.in_cutscene = false 26 | queue_free() 27 | else: 28 | bydlo.dialog_box.show_text('я тебе въебу') 29 | yield(get_tree().create_timer(2.0), "timeout") 30 | player.dialog_box.show_text('а может не надо?') 31 | yield(get_tree().create_timer(2.0), "timeout") 32 | bydlo.dialog_box.show_text('решишь задачу - пропущу, а не то получишь в бубен') 33 | yield(get_tree().create_timer(2.0), "timeout") 34 | choice_area.tr_q() 35 | 36 | func _on_ChoiceAreaZadacha_first(): 37 | player.dialog_box.show_text('Возьму пирожок и вылезу из ямы') 38 | yield(get_tree().create_timer(2.0), "timeout") 39 | bydlo.dialog_box.show_text('нихуя ты умный') 40 | bydlo.translation.z -= 0.5 41 | player.in_cutscene = false 42 | queue_free() 43 | 44 | func _on_ChoiceAreaZadacha_second(): 45 | player.dialog_box.show_text('Съем пирожок...') 46 | yield(get_tree().create_timer(2.0), "timeout") 47 | bydlo.dialog_box.show_text('всё, пизда тебе') 48 | yield(get_tree().create_timer(2.0), "timeout") 49 | player.die() 50 | -------------------------------------------------------------------------------- /prefabs/character.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=11 format=2] 2 | 3 | [ext_resource path="res://char_body_quad.tres" type="QuadMesh" id=1] 4 | [ext_resource path="res://char_hat_flip_quad.tres" type="QuadMesh" id=2] 5 | [ext_resource path="res://char_hat_quad.tres" type="QuadMesh" id=3] 6 | [ext_resource path="res://char_face_flip_quad.tres" type="QuadMesh" id=4] 7 | [ext_resource path="res://char_face_quad.tres" type="QuadMesh" id=5] 8 | [ext_resource path="res://char_walk.tres" type="Animation" id=6] 9 | [ext_resource path="res://char_idle.tres" type="Animation" id=7] 10 | [ext_resource path="res://scripts/character.gd" type="Script" id=8] 11 | [ext_resource path="res://footsteps.mp3" type="AudioStream" id=9] 12 | 13 | [sub_resource type="BoxShape" id=1] 14 | extents = Vector3( 0.433287, 0.492221, 0.239489 ) 15 | 16 | [node name="Character" type="KinematicBody"] 17 | script = ExtResource( 8 ) 18 | 19 | [node name="AnimationPlayer" type="AnimationPlayer" parent="."] 20 | anims/char_idle = ExtResource( 7 ) 21 | anims/char_walk = ExtResource( 6 ) 22 | anims/idle = ExtResource( 7 ) 23 | anims/walk = ExtResource( 6 ) 24 | 25 | [node name="CollisionShape" type="CollisionShape" parent="."] 26 | shape = SubResource( 1 ) 27 | 28 | [node name="Visual" type="Spatial" parent="."] 29 | 30 | [node name="Body" type="MeshInstance" parent="Visual"] 31 | mesh = ExtResource( 1 ) 32 | material/0 = null 33 | 34 | [node name="Hat" type="Spatial" parent="Visual"] 35 | 36 | [node name="MeshInstance" type="MeshInstance" parent="Visual/Hat"] 37 | transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -0.03 ) 38 | mesh = ExtResource( 3 ) 39 | material/0 = null 40 | 41 | [node name="MeshInstance2" type="MeshInstance" parent="Visual/Hat"] 42 | transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0.03 ) 43 | mesh = ExtResource( 2 ) 44 | material/0 = null 45 | 46 | [node name="Face" type="Spatial" parent="Visual"] 47 | 48 | [node name="MeshInstance" type="MeshInstance" parent="Visual/Face"] 49 | transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0.02 ) 50 | mesh = ExtResource( 5 ) 51 | material/0 = null 52 | 53 | [node name="MeshInstance2" type="MeshInstance" parent="Visual/Face"] 54 | transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -0.02 ) 55 | mesh = ExtResource( 4 ) 56 | material/0 = null 57 | 58 | [node name="AudioStreamPlayer3D" type="AudioStreamPlayer3D" parent="."] 59 | stream = ExtResource( 9 ) 60 | attenuation_model = 3 61 | 62 | [connection signal="animation_finished" from="AnimationPlayer" to="." method="_on_AnimationPlayer_animation_finished"] 63 | -------------------------------------------------------------------------------- /sign_flyawaynow.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="Animation" format=2] 2 | 3 | [resource] 4 | resource_name = "flyawaynow" 5 | length = 2.0 6 | tracks/0/type = "value" 7 | tracks/0/path = NodePath("MeshInstance:visible") 8 | tracks/0/interp = 1 9 | tracks/0/loop_wrap = true 10 | tracks/0/imported = false 11 | tracks/0/enabled = true 12 | tracks/0/keys = { 13 | "times": PoolRealArray( 0, 1, 2 ), 14 | "transitions": PoolRealArray( 1, 1, 1 ), 15 | "update": 1, 16 | "values": [ false, true, false ] 17 | } 18 | tracks/1/type = "value" 19 | tracks/1/path = NodePath("MeshInstance2:visible") 20 | tracks/1/interp = 1 21 | tracks/1/loop_wrap = true 22 | tracks/1/imported = false 23 | tracks/1/enabled = true 24 | tracks/1/keys = { 25 | "times": PoolRealArray( 0, 1 ), 26 | "transitions": PoolRealArray( 1, 1 ), 27 | "update": 1, 28 | "values": [ true, false ] 29 | } 30 | tracks/2/type = "value" 31 | tracks/2/path = NodePath("MeshInstance:translation") 32 | tracks/2/interp = 2 33 | tracks/2/loop_wrap = true 34 | tracks/2/imported = false 35 | tracks/2/enabled = true 36 | tracks/2/keys = { 37 | "times": PoolRealArray( 0, 1 ), 38 | "transitions": PoolRealArray( 1, 1 ), 39 | "update": 0, 40 | "values": [ Vector3( 0, 0, 0 ), Vector3( 5, 4, -15 ) ] 41 | } 42 | tracks/3/type = "value" 43 | tracks/3/path = NodePath("MeshInstance2:translation") 44 | tracks/3/interp = 2 45 | tracks/3/loop_wrap = true 46 | tracks/3/imported = false 47 | tracks/3/enabled = true 48 | tracks/3/keys = { 49 | "times": PoolRealArray( 0, 1 ), 50 | "transitions": PoolRealArray( 1, 1 ), 51 | "update": 0, 52 | "values": [ Vector3( 0, 0, 0 ), Vector3( 5, 4, -15 ) ] 53 | } 54 | tracks/4/type = "value" 55 | tracks/4/path = NodePath("MeshInstance2:rotation_degrees") 56 | tracks/4/interp = 1 57 | tracks/4/loop_wrap = true 58 | tracks/4/imported = false 59 | tracks/4/enabled = true 60 | tracks/4/keys = { 61 | "times": PoolRealArray( 0, 0.5, 1 ), 62 | "transitions": PoolRealArray( 1, 1, 1 ), 63 | "update": 0, 64 | "values": [ Vector3( 0, 0, 0 ), Vector3( 170, 150, 80 ), Vector3( 90, 40, 180 ) ] 65 | } 66 | tracks/5/type = "value" 67 | tracks/5/path = NodePath("MeshInstance:scale") 68 | tracks/5/interp = 1 69 | tracks/5/loop_wrap = true 70 | tracks/5/imported = false 71 | tracks/5/enabled = true 72 | tracks/5/keys = { 73 | "times": PoolRealArray( 1, 1.5, 2 ), 74 | "transitions": PoolRealArray( 1, 1, 1 ), 75 | "update": 0, 76 | "values": [ Vector3( 0, 0, 0 ), Vector3( 2, 2, 2 ), Vector3( 0, 0, 0 ) ] 77 | } 78 | tracks/6/type = "value" 79 | tracks/6/path = NodePath("MeshInstance:rotation_degrees") 80 | tracks/6/interp = 1 81 | tracks/6/loop_wrap = true 82 | tracks/6/imported = false 83 | tracks/6/enabled = true 84 | tracks/6/keys = { 85 | "times": PoolRealArray( 1, 1.5, 2 ), 86 | "transitions": PoolRealArray( 1, 1, 1 ), 87 | "update": 0, 88 | "values": [ Vector3( 0, 0, 90 ), Vector3( 0, 0, 0 ), Vector3( 0, 0, -90 ) ] 89 | } 90 | tracks/7/type = "value" 91 | tracks/7/path = NodePath("MeshInstance2:scale") 92 | tracks/7/interp = 1 93 | tracks/7/loop_wrap = true 94 | tracks/7/imported = false 95 | tracks/7/enabled = true 96 | tracks/7/keys = { 97 | "times": PoolRealArray( 0, 1 ), 98 | "transitions": PoolRealArray( 1, 1 ), 99 | "update": 0, 100 | "values": [ Vector3( 1, 1, 1 ), Vector3( 0, 0, 0 ) ] 101 | } 102 | -------------------------------------------------------------------------------- /project.godot: -------------------------------------------------------------------------------- 1 | ; Engine configuration file. 2 | ; It's best edited using the editor UI and not directly, 3 | ; since the parameters that go here are not all obvious. 4 | ; 5 | ; Format: 6 | ; [section] ; section goes between [] 7 | ; param=value ; assign values to parameters 8 | 9 | config_version=4 10 | 11 | [application] 12 | 13 | config/name="necessity" 14 | run/main_scene="res://main_scene.tscn" 15 | config/icon="res://icon.png" 16 | 17 | [autoload] 18 | 19 | global="*res://scripts/global.gd" 20 | 21 | [input] 22 | 23 | character_left={ 24 | "deadzone": 0.5, 25 | "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":65,"unicode":0,"echo":false,"script":null) 26 | , Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777231,"unicode":0,"echo":false,"script":null) 27 | , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":14,"pressure":0.0,"pressed":false,"script":null) 28 | , Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":0,"axis_value":-1.0,"script":null) 29 | ] 30 | } 31 | character_right={ 32 | "deadzone": 0.5, 33 | "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":68,"unicode":0,"echo":false,"script":null) 34 | , Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777233,"unicode":0,"echo":false,"script":null) 35 | , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":15,"pressure":0.0,"pressed":false,"script":null) 36 | , Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":0,"axis_value":1.0,"script":null) 37 | ] 38 | } 39 | choice_good={ 40 | "deadzone": 0.5, 41 | "events": [ Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"button_mask":0,"position":Vector2( 0, 0 ),"global_position":Vector2( 0, 0 ),"factor":1.0,"button_index":1,"pressed":false,"doubleclick":false,"script":null) 42 | ] 43 | } 44 | choice_bad={ 45 | "deadzone": 0.5, 46 | "events": [ Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"button_mask":0,"position":Vector2( 0, 0 ),"global_position":Vector2( 0, 0 ),"factor":1.0,"button_index":2,"pressed":false,"doubleclick":false,"script":null) 47 | ] 48 | } 49 | 50 | [physics] 51 | 52 | common/enable_pause_aware_picking=true 53 | 54 | [rendering] 55 | 56 | 2d/snapping/use_gpu_pixel_snap=true 57 | vram_compression/import_etc=true 58 | vram_compression/import_etc2=false 59 | quality/shadows/filter_mode=0 60 | quality/filters/anisotropic_filter_level=1 61 | quality/filters/use_nearest_mipmap_filter=true 62 | quality/lightmapping/use_bicubic_sampling=false 63 | quality/subsurface_scattering/quality=0 64 | quality/depth/hdr=false 65 | environment/default_environment="res://default_env.tres" 66 | quality/dynamic_fonts/use_oversampling=false 67 | -------------------------------------------------------------------------------- /prefabs/bydlo.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=20 format=2] 2 | 3 | [ext_resource path="res://bydlo_body.png" type="Texture" id=1] 4 | [ext_resource path="res://bydlo_cig.png" type="Texture" id=2] 5 | [ext_resource path="res://bydlo_hat.png" type="Texture" id=3] 6 | [ext_resource path="res://char_face_flip_quad.tres" type="QuadMesh" id=4] 7 | [ext_resource path="res://char_face_quad.tres" type="QuadMesh" id=5] 8 | [ext_resource path="res://char_walk.tres" type="Animation" id=6] 9 | [ext_resource path="res://char_idle.tres" type="Animation" id=7] 10 | [ext_resource path="res://scripts/bydlo.gd" type="Script" id=8] 11 | 12 | [sub_resource type="BoxShape" id=1] 13 | extents = Vector3( 0.433287, 0.492221, 0.239489 ) 14 | 15 | [sub_resource type="SpatialMaterial" id=2] 16 | flags_transparent = true 17 | flags_unshaded = true 18 | params_cull_mode = 2 19 | albedo_texture = ExtResource( 1 ) 20 | 21 | [sub_resource type="QuadMesh" id=3] 22 | material = SubResource( 2 ) 23 | 24 | [sub_resource type="SpatialMaterial" id=4] 25 | flags_transparent = true 26 | flags_unshaded = true 27 | albedo_texture = ExtResource( 3 ) 28 | 29 | [sub_resource type="QuadMesh" id=5] 30 | material = SubResource( 4 ) 31 | 32 | [sub_resource type="SpatialMaterial" id=6] 33 | flags_transparent = true 34 | flags_unshaded = true 35 | params_cull_mode = 1 36 | albedo_texture = ExtResource( 3 ) 37 | 38 | [sub_resource type="QuadMesh" id=7] 39 | material = SubResource( 6 ) 40 | 41 | [sub_resource type="SpatialMaterial" id=8] 42 | flags_transparent = true 43 | flags_unshaded = true 44 | albedo_texture = ExtResource( 2 ) 45 | 46 | [sub_resource type="QuadMesh" id=9] 47 | material = SubResource( 8 ) 48 | 49 | [sub_resource type="SpatialMaterial" id=10] 50 | flags_transparent = true 51 | flags_unshaded = true 52 | params_cull_mode = 1 53 | albedo_texture = ExtResource( 2 ) 54 | 55 | [sub_resource type="QuadMesh" id=11] 56 | material = SubResource( 10 ) 57 | 58 | [node name="Bydlo" type="KinematicBody"] 59 | script = ExtResource( 8 ) 60 | 61 | [node name="AnimationPlayer" type="AnimationPlayer" parent="."] 62 | anims/char_idle = ExtResource( 7 ) 63 | anims/char_walk = ExtResource( 6 ) 64 | anims/idle = ExtResource( 7 ) 65 | anims/walk = ExtResource( 6 ) 66 | 67 | [node name="CollisionShape" type="CollisionShape" parent="."] 68 | shape = SubResource( 1 ) 69 | 70 | [node name="Visual" type="Spatial" parent="."] 71 | 72 | [node name="Body" type="MeshInstance" parent="Visual"] 73 | mesh = SubResource( 3 ) 74 | material/0 = null 75 | 76 | [node name="Hat" type="Spatial" parent="Visual"] 77 | 78 | [node name="MeshInstance" type="MeshInstance" parent="Visual/Hat"] 79 | transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -0.03 ) 80 | mesh = SubResource( 5 ) 81 | material/0 = null 82 | 83 | [node name="MeshInstance2" type="MeshInstance" parent="Visual/Hat"] 84 | transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0.03 ) 85 | mesh = SubResource( 7 ) 86 | material/0 = null 87 | 88 | [node name="Face" type="Spatial" parent="Visual"] 89 | 90 | [node name="MeshInstance" type="MeshInstance" parent="Visual/Face"] 91 | transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0.02 ) 92 | mesh = ExtResource( 5 ) 93 | material/0 = null 94 | 95 | [node name="MeshInstance2" type="MeshInstance" parent="Visual/Face"] 96 | transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -0.02 ) 97 | mesh = ExtResource( 4 ) 98 | material/0 = null 99 | 100 | [node name="Cig" type="Spatial" parent="Visual"] 101 | 102 | [node name="MeshInstance" type="MeshInstance" parent="Visual/Cig"] 103 | transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0.04 ) 104 | mesh = SubResource( 9 ) 105 | material/0 = null 106 | 107 | [node name="MeshInstance2" type="MeshInstance" parent="Visual/Cig"] 108 | transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -0.04 ) 109 | mesh = SubResource( 11 ) 110 | material/0 = null 111 | 112 | [connection signal="animation_finished" from="AnimationPlayer" to="." method="_on_AnimationPlayer_animation_finished"] 113 | -------------------------------------------------------------------------------- /prefabs/alcoholic.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=26 format=2] 2 | 3 | [ext_resource path="res://alcoholic_body.png" type="Texture" id=1] 4 | [ext_resource path="res://scripts/alcoholic.gd" type="Script" id=2] 5 | [ext_resource path="res://alcoholic_hat.png" type="Texture" id=3] 6 | [ext_resource path="res://sleep.tres" type="Animation" id=4] 7 | [ext_resource path="res://alcoholic_face.png" type="Texture" id=5] 8 | [ext_resource path="res://char_walk.tres" type="Animation" id=6] 9 | [ext_resource path="res://char_idle.tres" type="Animation" id=7] 10 | [ext_resource path="res://fall.tres" type="Animation" id=8] 11 | [ext_resource path="res://alcoholic_bottle.png" type="Texture" id=9] 12 | 13 | [sub_resource type="Animation" id=1] 14 | resource_name = "alco_idle" 15 | length = 6.0 16 | loop = true 17 | tracks/0/type = "value" 18 | tracks/0/path = NodePath("Visual:translation") 19 | tracks/0/interp = 2 20 | tracks/0/loop_wrap = true 21 | tracks/0/imported = false 22 | tracks/0/enabled = true 23 | tracks/0/keys = { 24 | "times": PoolRealArray( 0, 1, 2, 3, 4, 5 ), 25 | "transitions": PoolRealArray( 1, 1, 1, 1, 1, 1 ), 26 | "update": 0, 27 | "values": [ Vector3( 0, 0, 0 ), Vector3( 0, 0.02, 0 ), Vector3( 0, 0, 0 ), Vector3( 0, 0.02, 0 ), Vector3( 0, 0, 0 ), Vector3( 0, 0.02, 0 ) ] 28 | } 29 | tracks/1/type = "value" 30 | tracks/1/path = NodePath("Visual/Face:translation") 31 | tracks/1/interp = 1 32 | tracks/1/loop_wrap = true 33 | tracks/1/imported = false 34 | tracks/1/enabled = true 35 | tracks/1/keys = { 36 | "times": PoolRealArray( 0, 2, 2.1, 3, 6 ), 37 | "transitions": PoolRealArray( 1, 1, 1, 1, 1 ), 38 | "update": 0, 39 | "values": [ Vector3( 0, 0, 0 ), Vector3( 0, 0, 0 ), Vector3( 0, 0.08, 0 ), Vector3( 0, 0, 0 ), Vector3( 0, 0, 0 ) ] 40 | } 41 | 42 | [sub_resource type="BoxShape" id=2] 43 | extents = Vector3( 0.433287, 0.492221, 0.239489 ) 44 | 45 | [sub_resource type="SpatialMaterial" id=13] 46 | flags_transparent = true 47 | flags_unshaded = true 48 | albedo_texture = ExtResource( 9 ) 49 | 50 | [sub_resource type="QuadMesh" id=14] 51 | material = SubResource( 13 ) 52 | 53 | [sub_resource type="SpatialMaterial" id=15] 54 | flags_transparent = true 55 | flags_unshaded = true 56 | params_cull_mode = 1 57 | albedo_texture = ExtResource( 9 ) 58 | 59 | [sub_resource type="QuadMesh" id=16] 60 | material = SubResource( 15 ) 61 | 62 | [sub_resource type="SpatialMaterial" id=3] 63 | flags_transparent = true 64 | flags_unshaded = true 65 | params_cull_mode = 2 66 | albedo_texture = ExtResource( 1 ) 67 | 68 | [sub_resource type="QuadMesh" id=4] 69 | material = SubResource( 3 ) 70 | 71 | [sub_resource type="SpatialMaterial" id=5] 72 | flags_transparent = true 73 | flags_unshaded = true 74 | albedo_texture = ExtResource( 3 ) 75 | 76 | [sub_resource type="QuadMesh" id=6] 77 | material = SubResource( 5 ) 78 | 79 | [sub_resource type="SpatialMaterial" id=7] 80 | flags_transparent = true 81 | flags_unshaded = true 82 | params_cull_mode = 1 83 | albedo_texture = ExtResource( 3 ) 84 | 85 | [sub_resource type="QuadMesh" id=8] 86 | material = SubResource( 7 ) 87 | 88 | [sub_resource type="SpatialMaterial" id=9] 89 | flags_transparent = true 90 | flags_unshaded = true 91 | albedo_texture = ExtResource( 5 ) 92 | 93 | [sub_resource type="QuadMesh" id=10] 94 | material = SubResource( 9 ) 95 | 96 | [sub_resource type="SpatialMaterial" id=11] 97 | flags_transparent = true 98 | flags_unshaded = true 99 | params_cull_mode = 1 100 | albedo_texture = ExtResource( 5 ) 101 | 102 | [sub_resource type="QuadMesh" id=12] 103 | material = SubResource( 11 ) 104 | 105 | [node name="Alcoholic" type="KinematicBody"] 106 | script = ExtResource( 2 ) 107 | 108 | [node name="AnimationPlayer" type="AnimationPlayer" parent="."] 109 | anims/alco_idle = SubResource( 1 ) 110 | anims/char_idle = ExtResource( 7 ) 111 | anims/char_walk = ExtResource( 6 ) 112 | anims/fall = ExtResource( 8 ) 113 | anims/idle = ExtResource( 7 ) 114 | anims/sleep = ExtResource( 4 ) 115 | anims/walk = ExtResource( 6 ) 116 | 117 | [node name="CollisionShape" type="CollisionShape" parent="."] 118 | shape = SubResource( 2 ) 119 | 120 | [node name="Bottle" type="Spatial" parent="."] 121 | 122 | [node name="MeshInstance" type="MeshInstance" parent="Bottle"] 123 | transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0.04 ) 124 | mesh = SubResource( 14 ) 125 | material/0 = null 126 | 127 | [node name="MeshInstance2" type="MeshInstance" parent="Bottle"] 128 | transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -0.04 ) 129 | mesh = SubResource( 16 ) 130 | material/0 = null 131 | 132 | [node name="Visual" type="Spatial" parent="."] 133 | 134 | [node name="Body" type="MeshInstance" parent="Visual"] 135 | mesh = SubResource( 4 ) 136 | material/0 = null 137 | 138 | [node name="Hat" type="Spatial" parent="Visual"] 139 | 140 | [node name="MeshInstance" type="MeshInstance" parent="Visual/Hat"] 141 | transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -0.03 ) 142 | mesh = SubResource( 6 ) 143 | material/0 = null 144 | 145 | [node name="MeshInstance2" type="MeshInstance" parent="Visual/Hat"] 146 | transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0.03 ) 147 | mesh = SubResource( 8 ) 148 | material/0 = null 149 | 150 | [node name="Face" type="Spatial" parent="Visual"] 151 | 152 | [node name="MeshInstance" type="MeshInstance" parent="Visual/Face"] 153 | transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0.02 ) 154 | mesh = SubResource( 10 ) 155 | material/0 = null 156 | 157 | [node name="MeshInstance2" type="MeshInstance" parent="Visual/Face"] 158 | transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -0.02 ) 159 | mesh = SubResource( 12 ) 160 | material/0 = null 161 | 162 | [connection signal="animation_finished" from="AnimationPlayer" to="." method="_on_AnimationPlayer_animation_finished"] 163 | -------------------------------------------------------------------------------- /main_scene.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=26 format=2] 2 | 3 | [ext_resource path="res://prefabs/character.tscn" type="PackedScene" id=1] 4 | [ext_resource path="res://scripts/camera_follow.gd" type="Script" id=2] 5 | [ext_resource path="res://prefabs/bush.tscn" type="PackedScene" id=3] 6 | [ext_resource path="res://prefabs/grass.tscn" type="PackedScene" id=4] 7 | [ext_resource path="res://prefabs/flowers.tscn" type="PackedScene" id=5] 8 | [ext_resource path="res://prefabs/tree.tscn" type="PackedScene" id=6] 9 | [ext_resource path="res://prefabs/direction_sign.tscn" type="PackedScene" id=7] 10 | [ext_resource path="res://scripts/sign.gd" type="Script" id=8] 11 | [ext_resource path="res://prefabs/text_bubble.tscn" type="PackedScene" id=9] 12 | [ext_resource path="res://prefabs/monologue_area.tscn" type="PackedScene" id=10] 13 | [ext_resource path="res://prefabs/choice_area.tscn" type="PackedScene" id=11] 14 | [ext_resource path="res://prefabs/ending_area.tscn" type="PackedScene" id=12] 15 | [ext_resource path="res://prefabs/bydlo.tscn" type="PackedScene" id=13] 16 | [ext_resource path="res://scripts/BydloEvent.gd" type="Script" id=14] 17 | [ext_resource path="res://prefabs/alcoholic.tscn" type="PackedScene" id=15] 18 | [ext_resource path="res://prefabs/garbage.tscn" type="PackedScene" id=16] 19 | [ext_resource path="res://scripts/AlcoEvent.gd" type="Script" id=17] 20 | [ext_resource path="res://prefabs/mud.tscn" type="PackedScene" id=18] 21 | [ext_resource path="res://jungle-day.mp3" type="AudioStream" id=19] 22 | [ext_resource path="res://scripts/MudEvent.gd" type="Script" id=20] 23 | [ext_resource path="res://scripts/ObhodEvent.gd" type="Script" id=21] 24 | [ext_resource path="res://scripts/EndingEvent.gd" type="Script" id=22] 25 | 26 | [sub_resource type="BoxShape" id=2] 27 | extents = Vector3( 1, 1, 0.219822 ) 28 | 29 | [sub_resource type="BoxShape" id=3] 30 | 31 | [sub_resource type="BoxShape" id=1] 32 | extents = Vector3( 0.457943, 1, 1 ) 33 | 34 | [node name="MainScene" type="Spatial" groups=[ 35 | "root", 36 | ]] 37 | 38 | [node name="Character" parent="." groups=[ 39 | "Player", 40 | ] instance=ExtResource( 1 )] 41 | transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -9.86709, 0.5, 0 ) 42 | dialog_box_path = NodePath("../TextBubble") 43 | 44 | [node name="Camera" type="Camera" parent="."] 45 | current = true 46 | script = ExtResource( 2 ) 47 | distance = 3.5 48 | 49 | [node name="Scenery" type="Spatial" parent="."] 50 | 51 | [node name="Bush" parent="Scenery" instance=ExtResource( 3 )] 52 | transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -0.625318, 0.414454, 0.515456 ) 53 | 54 | [node name="Bush2" parent="Scenery" instance=ExtResource( 3 )] 55 | transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0.494112, 0.488235, 1.07897 ) 56 | 57 | [node name="Bush3" parent="Scenery" instance=ExtResource( 3 )] 58 | transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -1.22132, 0.551131, 1.09358 ) 59 | 60 | [node name="Bush6" parent="Scenery" instance=ExtResource( 3 )] 61 | transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -2.35376, 0.551131, 0.844327 ) 62 | 63 | [node name="Bush7" parent="Scenery" instance=ExtResource( 3 )] 64 | transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -1.85046, 0.551131, 1.20327 ) 65 | 66 | [node name="Bush4" parent="Scenery" instance=ExtResource( 3 )] 67 | transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 1.50312, 0.446505, 0.815371 ) 68 | 69 | [node name="Bush5" parent="Scenery" instance=ExtResource( 3 )] 70 | transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 2.16277, 0.471975, 0.462769 ) 71 | 72 | [node name="Grass" parent="Scenery" instance=ExtResource( 4 )] 73 | transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.382695, 0.203857 ) 74 | 75 | [node name="Grass2" parent="Scenery" instance=ExtResource( 4 )] 76 | transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 1.2095, 0.382695, 0.0466661 ) 77 | 78 | [node name="Grass3" parent="Scenery" instance=ExtResource( 4 )] 79 | transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 2.11504, 0.382695, 0.203857 ) 80 | 81 | [node name="Grass4" parent="Scenery" instance=ExtResource( 4 )] 82 | transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 2.98675, 0.382695, 0.0880632 ) 83 | 84 | [node name="Grass5" parent="Scenery" instance=ExtResource( 4 )] 85 | transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -0.852002, 0.429967, 0.437988 ) 86 | 87 | [node name="Grass7" parent="Scenery" instance=ExtResource( 4 )] 88 | transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -1.91727, 0.429967, 0.437988 ) 89 | 90 | [node name="Grass8" parent="Scenery" instance=ExtResource( 4 )] 91 | transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -3.13195, 0.429967, 0.306266 ) 92 | 93 | [node name="Grass9" parent="Scenery" instance=ExtResource( 4 )] 94 | transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -1.38417, 0.429967, 0.316151 ) 95 | 96 | [node name="Grass6" parent="Scenery" instance=ExtResource( 4 )] 97 | transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 3.6918, 0.382695, 0.203857 ) 98 | 99 | [node name="Grass10" parent="Scenery" instance=ExtResource( 4 )] 100 | transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 3.6918, 0.382695, -0.977659 ) 101 | 102 | [node name="Grass11" parent="Scenery" instance=ExtResource( 4 )] 103 | transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 2.49659, 0.382695, -0.977659 ) 104 | 105 | [node name="Grass12" parent="Scenery" instance=ExtResource( 4 )] 106 | transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 1.39351, 0.382695, -0.977659 ) 107 | 108 | [node name="Grass13" parent="Scenery" instance=ExtResource( 4 )] 109 | transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0.0971814, 0.382695, -0.977659 ) 110 | 111 | [node name="Grass14" parent="Scenery" instance=ExtResource( 4 )] 112 | transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -0.987136, 0.382695, -0.977659 ) 113 | 114 | [node name="Grass15" parent="Scenery" instance=ExtResource( 4 )] 115 | transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -2.14905, 0.382695, -0.977659 ) 116 | 117 | [node name="Grass16" parent="Scenery" instance=ExtResource( 4 )] 118 | transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -3.13873, 0.382695, -0.977659 ) 119 | 120 | [node name="Grass17" parent="Scenery" instance=ExtResource( 4 )] 121 | transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 4.26866, 0.382695, -1.13492 ) 122 | 123 | [node name="Grass18" parent="Scenery" instance=ExtResource( 4 )] 124 | transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 3.07345, 0.382695, -1.13492 ) 125 | 126 | [node name="Grass19" parent="Scenery" instance=ExtResource( 4 )] 127 | transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 1.97038, 0.382695, -1.13492 ) 128 | 129 | [node name="Grass20" parent="Scenery" instance=ExtResource( 4 )] 130 | transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0.674046, 0.382695, -1.13492 ) 131 | 132 | [node name="Grass21" parent="Scenery" instance=ExtResource( 4 )] 133 | transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -0.410272, 0.382695, -1.13492 ) 134 | 135 | [node name="Grass22" parent="Scenery" instance=ExtResource( 4 )] 136 | transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -1.57219, 0.382695, -1.13492 ) 137 | 138 | [node name="Grass23" parent="Scenery" instance=ExtResource( 4 )] 139 | transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -2.56186, 0.382695, -1.13492 ) 140 | 141 | [node name="Grass24" parent="Scenery" instance=ExtResource( 4 )] 142 | transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 33.8686, 0.382695, -1.13492 ) 143 | 144 | [node name="Grass25" parent="Scenery" instance=ExtResource( 4 )] 145 | transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 35.1133, 0.382695, -1.13492 ) 146 | 147 | [node name="Grass26" parent="Scenery" instance=ExtResource( 4 )] 148 | transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 36.0521, 0.382695, -1.13492 ) 149 | 150 | [node name="Grass27" parent="Scenery" instance=ExtResource( 4 )] 151 | transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 35.5518, 0.382695, -1.58028 ) 152 | 153 | [node name="Grass28" parent="Scenery" instance=ExtResource( 4 )] 154 | transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 34.4924, 0.382695, -1.58028 ) 155 | 156 | [node name="Flowers" parent="Scenery" instance=ExtResource( 5 )] 157 | transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -0.290632, 0.364548, 0.822587 ) 158 | 159 | [node name="Flowers2" parent="Scenery" instance=ExtResource( 5 )] 160 | transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0.789721, 0.364548, 0.592877 ) 161 | 162 | [node name="Flowers3" parent="Scenery" instance=ExtResource( 5 )] 163 | transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 2.29815, 0.364548, 0.659968 ) 164 | 165 | [node name="Flowers4" parent="Scenery" instance=ExtResource( 5 )] 166 | transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 2.29815, 0.364548, -0.827486 ) 167 | 168 | [node name="Flowers5" parent="Scenery" instance=ExtResource( 5 )] 169 | transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0.685117, 0.344449, -1.1086 ) 170 | 171 | [node name="Flowers6" parent="Scenery" instance=ExtResource( 5 )] 172 | transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -0.538728, 0.344449, -1.31918 ) 173 | 174 | [node name="Flowers7" parent="Scenery" instance=ExtResource( 5 )] 175 | transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -1.88187, 0.344449, -1.31918 ) 176 | 177 | [node name="Flowers8" parent="Scenery" instance=ExtResource( 5 )] 178 | transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -1.36377, 0.351682, -0.684865 ) 179 | 180 | [node name="Tree" parent="Scenery" instance=ExtResource( 6 )] 181 | transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -1.22903, 0.933325, -1.36146 ) 182 | 183 | [node name="Tree3" parent="Scenery" instance=ExtResource( 6 )] 184 | transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -2.54521, 0.933325, 1.24383 ) 185 | 186 | [node name="Tree4" parent="Scenery" instance=ExtResource( 6 )] 187 | transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 3.81585, 0.933325, 1.24383 ) 188 | 189 | [node name="Tree5" parent="Scenery" instance=ExtResource( 6 )] 190 | transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0.0177672, 0.933325, 0.387245 ) 191 | 192 | [node name="Tree2" parent="Scenery" instance=ExtResource( 6 )] 193 | transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 1.51351, 0.872782, -1.36146 ) 194 | 195 | [node name="Garbage" parent="Scenery" instance=ExtResource( 16 )] 196 | transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 22.699, 0.19113, -0.389093 ) 197 | 198 | [node name="Garbage2" parent="Scenery" instance=ExtResource( 16 )] 199 | transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 21.9463, 0.19113, -0.545007 ) 200 | 201 | [node name="Garbage3" parent="Scenery" instance=ExtResource( 16 )] 202 | transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 23.8612, 0.19113, 0.583564 ) 203 | 204 | [node name="Mud" parent="Scenery" instance=ExtResource( 18 )] 205 | transform = Transform( 2, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, 33.0979, 0, 0 ) 206 | 207 | [node name="RoadBlock" type="KinematicBody" parent="Scenery"] 208 | transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 26.661, 0, -1 ) 209 | 210 | [node name="CollisionShape" type="CollisionShape" parent="Scenery/RoadBlock"] 211 | transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0.5 ) 212 | shape = SubResource( 2 ) 213 | 214 | [node name="RoadBlock2" type="KinematicBody" parent="Scenery"] 215 | transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 34.2562, 0, -1 ) 216 | 217 | [node name="CollisionShape" type="CollisionShape" parent="Scenery/RoadBlock2"] 218 | transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0.5 ) 219 | shape = SubResource( 2 ) 220 | 221 | [node name="Interactive" type="Spatial" parent="."] 222 | 223 | [node name="EndingAreaRight" parent="Interactive" instance=ExtResource( 12 )] 224 | transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 53.6303, 5.85084, 0 ) 225 | 226 | [node name="EndingEvent" type="Area" parent="Interactive"] 227 | transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 49.1456, 0.990373, 0 ) 228 | script = ExtResource( 22 ) 229 | 230 | [node name="CollisionShape" type="CollisionShape" parent="Interactive/EndingEvent"] 231 | shape = SubResource( 3 ) 232 | 233 | [node name="EndingArea" parent="Interactive" instance=ExtResource( 12 )] 234 | transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -19.197, 0.925444, 0 ) 235 | text = "ИСТИННАЯ" 236 | 237 | [node name="ChoiceArea" parent="Interactive" instance=ExtResource( 11 )] 238 | transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 5.70912, 1, 0 ) 239 | text = "пнуть табличку или оставить в покое? (лкм - хорошее действие, пкм - плохое)" 240 | 241 | [node name="Sign" parent="Interactive" instance=ExtResource( 7 )] 242 | transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 5.74352, 0.362174, -0.744604 ) 243 | 244 | [node name="SignEvent" type="Spatial" parent="Interactive"] 245 | transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 5.65378, 1, 0 ) 246 | script = ExtResource( 8 ) 247 | 248 | [node name="MonologueArea" parent="Interactive" instance=ExtResource( 10 )] 249 | transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -9, 1, 0 ) 250 | text = "я - зло" 251 | 252 | [node name="MonologueArea4" parent="Interactive" instance=ExtResource( 10 )] 253 | transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -13.0199, 1, 0 ) 254 | text = "а впрочем, в пизду это приключение" 255 | 256 | [node name="MonologueArea5" parent="Interactive" instance=ExtResource( 10 )] 257 | transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -16.5655, 1, 0 ) 258 | text = "всё, я пошёл домой" 259 | 260 | [node name="MonologueArea1" parent="Interactive" instance=ExtResource( 10 )] 261 | transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -5.5891, 1, 0 ) 262 | text = "отправился в своё злое приключение" 263 | 264 | [node name="MonologueArea2" parent="Interactive" instance=ExtResource( 10 )] 265 | transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -1.51144, 1, 0 ) 266 | text = "как же я зол" 267 | 268 | [node name="MonologueArea3" parent="Interactive" instance=ExtResource( 10 )] 269 | transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 2.56705, 1, 0 ) 270 | text = "мне срочно нужно сделать что-то злое" 271 | 272 | [node name="MonologueAreaKickedSign" parent="Interactive" instance=ExtResource( 10 )] 273 | transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 7.84703, 1, 0 ) 274 | text = "как же я хорош" 275 | 276 | [node name="ObhodEvent" type="Spatial" parent="Interactive"] 277 | transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 32.9232, 1, -0.678041 ) 278 | script = ExtResource( 21 ) 279 | 280 | [node name="MonologueAreaKickedSign3" parent="Interactive/ObhodEvent" instance=ExtResource( 10 )] 281 | text = "ну пиздец" 282 | 283 | [node name="MonologueAreaKickedSign2" parent="Interactive" instance=ExtResource( 10 )] 284 | transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 9.81448, 1, 0 ) 285 | text = "всмысле плох" 286 | 287 | [node name="BydloEvent" type="Area" parent="Interactive"] 288 | transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 11.4243, 0.725135, 0 ) 289 | script = ExtResource( 14 ) 290 | 291 | [node name="CollisionShape" type="CollisionShape" parent="Interactive/BydloEvent"] 292 | shape = SubResource( 1 ) 293 | 294 | [node name="ChoiceAreaZadacha" parent="Interactive/BydloEvent" instance=ExtResource( 11 )] 295 | transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0.433366, 3.02107, 0 ) 296 | question_panel_scene = "res://prefabs/question_panel_twoopts.tscn" 297 | text = "ты упал в яму. в яме пирожок и хуй. что съешь, что в жопу засунешь?" 298 | unlock_after_answer = false 299 | 300 | [node name="AlcoEvent" type="Area" parent="Interactive"] 301 | transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 21.4471, 0.725135, 0 ) 302 | script = ExtResource( 17 ) 303 | 304 | [node name="CollisionShape" type="CollisionShape" parent="Interactive/AlcoEvent"] 305 | shape = SubResource( 1 ) 306 | 307 | [node name="ChoiceAreaKickAlco" parent="Interactive/AlcoEvent" instance=ExtResource( 11 )] 308 | transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0.433366, 3.02107, 0 ) 309 | text = "ударить алкаша или оставить в покое?" 310 | unlock_after_answer = false 311 | 312 | [node name="Bydlo" parent="Interactive" instance=ExtResource( 13 )] 313 | transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 12.7121, 0.527616, 0 ) 314 | dialog_box_path = NodePath("../../TextBubbleBydlo") 315 | 316 | [node name="Alcoholic" parent="Interactive" instance=ExtResource( 15 )] 317 | transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 22.5363, 0.53015, 0 ) 318 | dialog_box_path = NodePath("../../TextBubbleAlcoholic") 319 | 320 | [node name="MudEvent" type="Spatial" parent="Interactive"] 321 | transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 28.3433, 0.729404, 0 ) 322 | script = ExtResource( 20 ) 323 | 324 | [node name="ChoiceArea2" parent="Interactive/MudEvent" instance=ExtResource( 11 )] 325 | question_panel_scene = "res://prefabs/question_panel_twoopts.tscn" 326 | text = "обойти лужу?" 327 | 328 | [node name="TextBubble" parent="." instance=ExtResource( 9 )] 329 | transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 1.46173, 1.66211, 0 ) 330 | follow_path = NodePath("../Character") 331 | 332 | [node name="TextBubbleBydlo" parent="." instance=ExtResource( 9 )] 333 | transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 1.46173, 1.66211, 0 ) 334 | follow_path = NodePath("../Interactive/Bydlo") 335 | 336 | [node name="TextBubbleAlcoholic" parent="." instance=ExtResource( 9 )] 337 | transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 1.46173, 1.66211, 0 ) 338 | follow_path = NodePath("../Interactive/Alcoholic") 339 | 340 | [node name="AudioStreamPlayer" type="AudioStreamPlayer" parent="."] 341 | stream = ExtResource( 19 ) 342 | volume_db = -10.0 343 | autoplay = true 344 | 345 | [connection signal="body_entered" from="Interactive/EndingEvent" to="Interactive/EndingEvent" method="_on_EndingEvent_body_entered"] 346 | [connection signal="bad" from="Interactive/ChoiceArea" to="Interactive/SignEvent" method="kick_and_say"] 347 | [connection signal="good" from="Interactive/ChoiceArea" to="Interactive/SignEvent" method="ignore_and_say"] 348 | [connection signal="body_entered" from="Interactive/ObhodEvent/MonologueAreaKickedSign3" to="Interactive/ObhodEvent" method="_on_MonologueAreaKickedSign3_body_entered"] 349 | [connection signal="body_entered" from="Interactive/BydloEvent" to="Interactive/BydloEvent" method="_on_BydloEvent_body_entered"] 350 | [connection signal="first" from="Interactive/BydloEvent/ChoiceAreaZadacha" to="Interactive/BydloEvent" method="_on_ChoiceAreaZadacha_first"] 351 | [connection signal="second" from="Interactive/BydloEvent/ChoiceAreaZadacha" to="Interactive/BydloEvent" method="_on_ChoiceAreaZadacha_second"] 352 | [connection signal="body_entered" from="Interactive/AlcoEvent" to="Interactive/AlcoEvent" method="_on_BydloEvent_body_entered"] 353 | [connection signal="bad" from="Interactive/AlcoEvent/ChoiceAreaKickAlco" to="Interactive/AlcoEvent" method="_on_ChoiceAreaKickAlco_bad"] 354 | [connection signal="good" from="Interactive/AlcoEvent/ChoiceAreaKickAlco" to="Interactive/AlcoEvent" method="_on_ChoiceAreaKickAlco_good"] 355 | [connection signal="first" from="Interactive/MudEvent/ChoiceArea2" to="Interactive/MudEvent" method="_on_ChoiceArea2_first"] 356 | [connection signal="second" from="Interactive/MudEvent/ChoiceArea2" to="Interactive/MudEvent" method="_on_ChoiceArea2_second"] 357 | --------------------------------------------------------------------------------