From 32549b82a2370cc05a5d909aa6b8ec85d1287ecd Mon Sep 17 00:00:00 2001 From: c Date: Fri, 17 Jun 2022 09:09:23 +0200 Subject: [PATCH] init --- AntiDepressant.gd | 27 +++ Camera.gd | 66 +++++++ Candle.gd | 26 +++ HUD.gd | 23 +++ Main.gd | 278 +++++++++++++++++++++++++++++ Main.tscn | 376 +++++++++++++++++++++++++++++++++++++++ MoodStabilizer.gd | 26 +++ Player.gd | 183 +++++++++++++++++++ assets/ground.png | Bin 0 -> 12617 bytes assets/ground.png.import | 37 ++++ default_env.tres | 7 + export_presets.cfg | 24 +++ icon.png | Bin 0 -> 3305 bytes icon.png.import | 35 ++++ project.godot | 107 +++++++++++ 15 files changed, 1215 insertions(+) create mode 100644 AntiDepressant.gd create mode 100644 Camera.gd create mode 100644 Candle.gd create mode 100644 HUD.gd create mode 100644 Main.gd create mode 100644 Main.tscn create mode 100644 MoodStabilizer.gd create mode 100644 Player.gd create mode 100644 assets/ground.png create mode 100644 assets/ground.png.import create mode 100644 default_env.tres create mode 100644 export_presets.cfg create mode 100644 icon.png create mode 100644 icon.png.import create mode 100644 project.godot diff --git a/AntiDepressant.gd b/AntiDepressant.gd new file mode 100644 index 0000000..5557cec --- /dev/null +++ b/AntiDepressant.gd @@ -0,0 +1,27 @@ +extends Area + + +# Declare member variables here. Examples: +# var a = 2 +# var b = "text" + +var player + + +# Called when the node enters the scene tree for the first time. +func _ready(): + player = get_node(@"../../../Player") + #pass # Replace with function body. + +func _physics_process(delta): + rotate_y(delta) + + if(overlaps_body(player)): + player.addAntiDepressant() + queue_free() + + + +# Called every frame. 'delta' is the elapsed time since the previous frame. +#func _process(delta): +# pass diff --git a/Camera.gd b/Camera.gd new file mode 100644 index 0000000..fadcb07 --- /dev/null +++ b/Camera.gd @@ -0,0 +1,66 @@ +extends Camera + + +# Depression +var downForceStrength = 0 + +#Mania +export var max_offset = 0.3 # Maximum hor/ver shake in pixels. +export var max_roll = 0.1 # Maximum rotation in radians (use sparingly). +#export (NodePath) var target # Assign the node this camera will follow. + +var trauma = 0.0 # Current shake strength. +var trauma_power = 2 # Trauma exponent. Use [2, 3]. + +var downForce = false; + +onready var noise = OpenSimplexNoise.new() +var noise_y = 0 + +var pivot + +# Called when the node enters the scene tree for the first time. +func _ready(): + randomize() + noise.seed = randi() + noise.period = 4 + noise.octaves = 2 + pivot = get_parent(); + + +func changeShaking(setTrauma): + trauma = setTrauma + +func changeDownForce(force): + downForceStrength = force + + +func _process(delta): +# if target: +# global_position = get_node(target).global_position + if trauma: + shake() + + if downForceStrength<0: + if(pivot.rotation.x > -1.4): + #print(pivot.rotation.x) + pivot.rotate_x(downForceStrength) + + + +func shake(): + var amount = pow(trauma, trauma_power) + noise_y += 1 + # Using noise + #rotation = max_roll * amount * noise.get_noise_2d(noise.seed, noise_y) + v_offset = max_offset * amount * noise.get_noise_2d(noise.seed*3, noise_y) + h_offset = max_offset * amount * noise.get_noise_2d(noise.seed*2, noise_y) +# Called every frame. 'delta' is the elapsed time since the previous frame. +#func _process(delta): +# pass + + +func reset(): + trauma = 0 + downForce=false + downForceStrength = 0; diff --git a/Candle.gd b/Candle.gd new file mode 100644 index 0000000..598a3e4 --- /dev/null +++ b/Candle.gd @@ -0,0 +1,26 @@ +extends OmniLight + + +# Declare member variables here. Examples: +# var a = 2 +# var b = "text" + +var _noise = OpenSimplexNoise.new() + + +# Called when the node enters the scene tree for the first time. +func _ready(): + randomize() + # Configure the OpenSimplexNoise instance. + _noise.seed = randi() + _noise.octaves = 4 + _noise.period = 20.0 + _noise.persistence = 0.8 + + + +# Called every frame. 'delta' is the elapsed time since the previous frame. +func _process(delta): + if(OS.get_ticks_msec()%100<10): + light_energy = 1 + _noise.get_noise_1d(OS.get_ticks_msec()) + diff --git a/HUD.gd b/HUD.gd new file mode 100644 index 0000000..6d9ec3d --- /dev/null +++ b/HUD.gd @@ -0,0 +1,23 @@ +extends CanvasLayer + + +# Declare member variables here. Examples: +# var a = 2 +# var b = "text" + + +# Called when the node enters the scene tree for the first time. +func _ready(): + pass # Replace with function body. + + +# Called every frame. 'delta' is the elapsed time since the previous frame. +#func _process(delta): +# pass +func showAntiDep(count): + $AntiDep.text = count + $AntiDep.show() + +func showMoodStab(count): + $MoodStab.text = count + $MoodStab.show() diff --git a/Main.gd b/Main.gd new file mode 100644 index 0000000..73391b9 --- /dev/null +++ b/Main.gd @@ -0,0 +1,278 @@ +extends Node + + +# Declare member variables here. Examples: +# var a = 2 +# var b = "text" + +var wantToQuit = false + +var mood = 0 #[-1,+1] + +#taken pills that effects current state +var antiDep = 0 +var moodStab = 0 + +var vision +var player + +var averageDownPhase = 3 +var averageUpPhase = 2 +var averageStable = 2 + +var stableTimer +var maniaTimer +var depressionTimer + +#var moodStabilizerTimer +#var antiDepressantTimer + +var secondsPerWeek = 10 + +var rng = RandomNumberGenerator.new() + +var hudMood +var hudAnti +var hudStab + +var takingPill = false + +#smoothing curves points +var p0 = 0 +var p1 = 0 + +var t = 0.0 + + +var sun + + +# Called when the node enters the scene tree for the first time. +func _ready(): + vision = $Player/CameraPivot/Camera + player = $Player + sun = $Lighting/Sun + hudMood = $HUD/debug/Mood + hudAnti = $HUD/debug/AntiDepActive + hudStab = $HUD/debug/MoodStabActive + + + stableTimer = $Timer/StableTimer + maniaTimer = $Timer/ManiaTimer + depressionTimer = $Timer/DepressionTimer + +# moodStabilizerTimer = $Collectibles/MoodStabilizer/Timer +# antiDepressantTimer = $Collectibles/AntiDepressant/Timer + + + #add_child(stableTimer) + #add_child(maniaTimer) + #add_child(depressionTimer) +# add_child(moodStabilizerTimer) +# add_child(antiDepressantTimer) + + stableTimer.connect("timeout", self, "_on_StableTimer_timeout") + maniaTimer.connect("timeout", self, "_on_ManiaTimer_timeout") + depressionTimer.connect("timeout", self, "_on_DepressionTimer_timeout") +# moodStabilizerTimer.connect("timeout", self, "_on_MoodStabilizerTimer_timeout") +# antiDepressantTimer.connect("timeout", self, "_on_AntiDepressantTimer_timeout") + + stableTimer.set_wait_time(secondsPerWeek*averageStable+rng.randf_range(-secondsPerWeek/5,+secondsPerWeek/5)) + stableTimer.start() + print("stabletimer started with waitime: ",stableTimer.get_wait_time()) + + +func _input(event): + if Input.is_action_pressed("click"): + Input.set_mouse_mode(Input.MOUSE_MODE_CAPTURED) + wantToQuit = false + + if Input.is_action_just_released("depression"): + #take antidepressend + if(takingPill): + pass + else: + if(player.getAntiDepressant()>0): + player.takeAntiDepressant() + antiDep = antiDep + 1 + var antiDepressantTimer = Timer.new() + antiDepressantTimer.one_shot = true + antiDepressantTimer.set_wait_time(secondsPerWeek*averageDownPhase/2) + add_child(antiDepressantTimer) + antiDepressantTimer.connect("timeout", self, "_on_AntiDepressantTimer_timeout") + antiDepressantTimer.start() + print("antiDepressantTimer started with waitime: ",antiDepressantTimer.get_wait_time()) + + + + takingPill = true + yield(get_tree().create_timer(1.0), "timeout") + takingPill = false + + if Input.is_action_just_released("mania"): + if(takingPill): + pass + else: + if(player.getMoodStabilizer()>0): + player.takeMoodStabilizer() + moodStab = moodStab + 1 + var moodStabilizerTimer = Timer.new() + moodStabilizerTimer.one_shot = true; + moodStabilizerTimer.set_wait_time(secondsPerWeek*averageUpPhase/2) + add_child(moodStabilizerTimer) + moodStabilizerTimer.connect("timeout", self, "_on_MoodStabilizerTimer_timeout") + moodStabilizerTimer.start() + print("moodStabilizerTimer started with waitime: ",moodStabilizerTimer.get_wait_time()) + + takingPill = true + yield(get_tree().create_timer(1.0), "timeout") + takingPill = false + if Input.is_action_pressed("reset"): + mood = 0 + vision.reset() + player.setNormal() + changeEffectsByMood() + + if Input.is_action_pressed("quit"): + if wantToQuit && Input.get_mouse_mode()==Input.MOUSE_MODE_CONFINED: + get_tree().quit() + else: + if Input.get_mouse_mode()==Input.MOUSE_MODE_CONFINED: + wantToQuit = true + else: + Input.set_mouse_mode(Input.MOUSE_MODE_CONFINED) + + if Input.is_action_just_released("flashlight"): + if($Player/CameraPivot/Flashlight.visible): + $Player/CameraPivot/Flashlight.visible = false + else: + $Player/CameraPivot/Flashlight.visible = true + + + + + +func changeEffectsByMood(): + + #depression + if(mood<0): + player.setDepressed(1+(1*abs(mood))) + #regulare med + if(antiDep>0): + vision.changeDownForce(0) + player.setDepressed(1) + #overdose of regulare med + if(antiDep>1): + vision.changeDownForce(+0.005*antiDep) + #none regular med + if(antiDep==0): + vision.changeDownForce(-0.005*abs(mood)) + + #wrong med + if(moodStab>0): + vision.changeShaking(1*moodStab) + #none wrong med + else: + vision.changeShaking(0) + + + + #mania + if (mood>0): + #wrong med + if(antiDep>0): + player.setDepressed(1*antiDep) + else: + player.setManic(1+(1*mood)) + + #regulare med + if(moodStab>0): + vision.changeShaking(0) + #overdose regulare med + if(moodStab>1): + player.setManic(2) + if(moodStab==0): + vision.changeShaking(1*mood) + + vision.changeDownForce(0) + + #stable + if (mood==0): + vision.changeDownForce(mood) + vision.changeShaking(mood) + vision.reset() + player.setNormal() + + if(antiDep>0): + player.setDepressed(1*antiDep) + + if(moodStab>0): + vision.changeShaking(1*moodStab) + + +# Called every frame. 'delta' is the elapsed time since the previous frame. +func _process(delta): + smoothMood(delta/secondsPerWeek*0.7) + + changeEffectsByMood() + + sun.rotate_x(delta) + + + hudMood.text = String(mood) + hudAnti.text = String(antiDep) + hudStab.text = String(moodStab) + + + +func _on_StableTimer_timeout(): + print("StableTimer_timeout") + #mood = -1 + p0 = 0 + p1 = -1 + t = 0 + depressionTimer.set_wait_time(secondsPerWeek*averageDownPhase+rng.randf_range(-secondsPerWeek/5,+secondsPerWeek/5)) + depressionTimer.start() + print("depressionTimer started with waitime: ",depressionTimer.get_wait_time()) + + +func _on_ManiaTimer_timeout(): + print("ManiaTimer_timeout") + #mood = 0 + p0 = 1 + p1 = 0 + t = 0 + stableTimer.set_wait_time(secondsPerWeek*averageStable+rng.randf_range(-secondsPerWeek/5,+secondsPerWeek/5)) + stableTimer.start() + print("stabletimer started with waitime: ",stableTimer.get_wait_time()) + +func _on_DepressionTimer_timeout(): + print("DepressionTimer_timeout") + #mood = +1 + p0 = -1 + p1 = +1 + t = 0 + maniaTimer.set_wait_time(secondsPerWeek*averageUpPhase+rng.randf_range(-secondsPerWeek/5,+secondsPerWeek/5)) + maniaTimer.start() + print("maniaTimer started with waitime: ",maniaTimer.get_wait_time()) + +func _on_AntiDepressantTimer_timeout(): + print("AntiDepressantTimer_timeout") + antiDep = antiDep - 1 + +func _on_MoodStabilizerTimer_timeout(): + print("MoodStabilizerTimer_timeout") + moodStab = moodStab - 1 + +func takingpill(): + takingPill = false + +func smoothMood(deltaTime: float): + #print(p0," ",p1) + t += deltaTime + if(t>1): + t=1 + if(t<-1): + t=-1 + mood = p0 * (1 - t) + p1 * t + #print(mood) diff --git a/Main.tscn b/Main.tscn new file mode 100644 index 0000000..a13b239 --- /dev/null +++ b/Main.tscn @@ -0,0 +1,376 @@ +[gd_scene load_steps=31 format=2] + +[ext_resource path="res://Player.gd" type="Script" id=1] +[ext_resource path="res://Camera.gd" type="Script" id=2] +[ext_resource path="res://Main.gd" type="Script" id=3] +[ext_resource path="res://assets/ground.png" type="Texture" id=4] +[ext_resource path="res://MoodStabilizer.gd" type="Script" id=5] +[ext_resource path="res://AntiDepressant.gd" type="Script" id=6] +[ext_resource path="res://HUD.gd" type="Script" id=7] +[ext_resource path="res://Candle.gd" type="Script" id=8] + +[sub_resource type="CubeMesh" id=1] + +[sub_resource type="SpatialMaterial" id=6] +albedo_texture = ExtResource( 4 ) +uv1_scale = Vector3( 10, 10, 10 ) +uv1_triplanar = true +uv2_triplanar = true + +[sub_resource type="BoxShape" id=2] + +[sub_resource type="CapsuleShape" id=3] + +[sub_resource type="CapsuleMesh" id=11] + +[sub_resource type="SpatialMaterial" id=12] +albedo_color = Color( 1, 0.890196, 0, 1 ) + +[sub_resource type="CapsuleShape" id=13] + +[sub_resource type="CapsuleMesh" id=9] + +[sub_resource type="SpatialMaterial" id=10] +albedo_color = Color( 0.85098, 0, 1, 1 ) + +[sub_resource type="CapsuleShape" id=8] + +[sub_resource type="CubeMesh" id=4] + +[sub_resource type="BoxShape" id=5] + +[sub_resource type="CubeMesh" id=14] + +[sub_resource type="BoxShape" id=15] + +[sub_resource type="ParticlesMaterial" id=18] +emission_shape = 5 +emission_ring_radius = 2.0 +emission_ring_inner_radius = 0.0 +emission_ring_height = 1.0 +emission_ring_axis = Vector3( 0, 0, 1 ) +gravity = Vector3( 0, 9.8, 0 ) +initial_velocity = 1.0 +initial_velocity_random = 1.0 +anim_speed_random = 0.47 + +[sub_resource type="SpatialMaterial" id=19] +albedo_color = Color( 1, 0.4, 0, 1 ) +emission_enabled = true +emission = Color( 1, 0.117647, 0, 1 ) +emission_energy = 1.0 +emission_operator = 0 +emission_on_uv2 = false + +[sub_resource type="SphereMesh" id=20] +material = SubResource( 19 ) +radius = 0.311 +height = 2.024 +is_hemisphere = true + +[sub_resource type="CubeMesh" id=21] + +[sub_resource type="BoxShape" id=22] + +[sub_resource type="CapsuleMesh" id=7] + +[sub_resource type="PanoramaSky" id=17] + +[sub_resource type="Environment" id=16] +background_sky = SubResource( 17 ) +ambient_light_color = Color( 0.0470588, 0.0470588, 0.0470588, 1 ) +ambient_light_energy = 1.45 +ambient_light_sky_contribution = 0.0 + +[node name="Main" type="Node"] +script = ExtResource( 3 ) + +[node name="Ground" type="StaticBody" parent="."] +transform = Transform( 500, 0, 0, 0, 1, 0, 0, 0, 500, 0, -1, 0 ) + +[node name="MeshInstance" type="MeshInstance" parent="Ground"] +mesh = SubResource( 1 ) +material/0 = SubResource( 6 ) + +[node name="CollisionShape" type="CollisionShape" parent="Ground"] +shape = SubResource( 2 ) + +[node name="Player" type="KinematicBody" parent="."] +script = ExtResource( 1 ) + +[node name="CollisionShape" type="CollisionShape" parent="Player"] +transform = Transform( 1, 0, 0, 0, -4.37114e-08, -1, 0, 1, -4.37114e-08, 0, 1.68515, 0 ) +shape = SubResource( 3 ) + +[node name="CameraPivot" type="Position3D" parent="Player"] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 2.36526, 0 ) + +[node name="Camera" type="Camera" parent="Player/CameraPivot"] +script = ExtResource( 2 ) + +[node name="Flashlight" type="SpotLight" parent="Player/CameraPivot"] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.392762, -0.758436 ) +shadow_enabled = true +spot_range = 30.0 +spot_attenuation = 4.14106 + +[node name="Collectibles" type="Node" parent="."] + +[node name="AntiDepressants" type="Node" parent="Collectibles"] + +[node name="AntiDepressant" type="Area" parent="Collectibles/AntiDepressants"] +transform = Transform( 0.5, 0, 0, 0, 0.353553, -0.353553, 0, 0.353553, 0.353553, -16.9333, 1.3376, 0 ) +script = ExtResource( 6 ) + +[node name="MeshInstance" type="MeshInstance" parent="Collectibles/AntiDepressants/AntiDepressant"] +mesh = SubResource( 11 ) +material/0 = SubResource( 12 ) + +[node name="CollisionShape" type="CollisionShape" parent="Collectibles/AntiDepressants/AntiDepressant"] +shape = SubResource( 13 ) + +[node name="Timer" type="Timer" parent="Collectibles/AntiDepressants/AntiDepressant"] +one_shot = true + +[node name="AntiDepressant2" type="Area" parent="Collectibles/AntiDepressants"] +transform = Transform( 0.5, 0, 0, 0, 0.353553, -0.353553, 0, 0.353553, 0.353553, -16.9333, 1.3376, 5.39893 ) +script = ExtResource( 6 ) + +[node name="MeshInstance" type="MeshInstance" parent="Collectibles/AntiDepressants/AntiDepressant2"] +mesh = SubResource( 11 ) +material/0 = SubResource( 12 ) + +[node name="CollisionShape" type="CollisionShape" parent="Collectibles/AntiDepressants/AntiDepressant2"] +shape = SubResource( 13 ) + +[node name="Timer" type="Timer" parent="Collectibles/AntiDepressants/AntiDepressant2"] +one_shot = true + +[node name="MoodStabilizers" type="Node" parent="Collectibles"] + +[node name="MoodStabilizer" type="Area" parent="Collectibles/MoodStabilizers"] +transform = Transform( 0.5, 0, 0, 0, 0.353553, -0.353553, 0, 0.353553, 0.353553, 2.9262, 5.87371, -5.98535 ) +script = ExtResource( 5 ) + +[node name="MeshInstance" type="MeshInstance" parent="Collectibles/MoodStabilizers/MoodStabilizer"] +mesh = SubResource( 9 ) +skeleton = NodePath("") +material/0 = SubResource( 10 ) + +[node name="CollisionShape" type="CollisionShape" parent="Collectibles/MoodStabilizers/MoodStabilizer"] +shape = SubResource( 8 ) + +[node name="Timer" type="Timer" parent="Collectibles/MoodStabilizers/MoodStabilizer"] +one_shot = true + +[node name="MoodStabilizer2" type="Area" parent="Collectibles/MoodStabilizers"] +transform = Transform( 0.5, 0, 0, 0, 0.353553, -0.353553, 0, 0.353553, 0.353553, 2.9262, 5.87371, -8.70988 ) +script = ExtResource( 5 ) + +[node name="MeshInstance" type="MeshInstance" parent="Collectibles/MoodStabilizers/MoodStabilizer2"] +mesh = SubResource( 9 ) +skeleton = NodePath("") +material/0 = SubResource( 10 ) + +[node name="CollisionShape" type="CollisionShape" parent="Collectibles/MoodStabilizers/MoodStabilizer2"] +shape = SubResource( 8 ) + +[node name="Timer" type="Timer" parent="Collectibles/MoodStabilizers/MoodStabilizer2"] +one_shot = true + +[node name="HUD" type="CanvasLayer" parent="."] +script = ExtResource( 7 ) + +[node name="AntiDep" type="Label" parent="HUD"] +margin_left = 127.0 +margin_top = 570.0 +margin_right = 167.0 +margin_bottom = 584.0 +text = "0" + +[node name="MoodStab" type="Label" parent="HUD"] +margin_left = 983.0 +margin_top = 570.0 +margin_right = 1023.0 +margin_bottom = 584.0 +text = "0" + +[node name="AntiDepText" type="Label" parent="HUD"] +margin_left = 15.0 +margin_top = 570.0 +margin_right = 119.0 +margin_bottom = 584.0 +text = "Anti-Depressant:" + +[node name="MoodStabText" type="Label" parent="HUD"] +margin_left = 874.0 +margin_top = 571.0 +margin_right = 973.0 +margin_bottom = 585.0 +text = "Mood Stabilizer:" + +[node name="debug" type="Node" parent="HUD"] + +[node name="Mood" type="Label" parent="HUD/debug"] +margin_right = 40.0 +margin_bottom = 14.0 +text = "0" + +[node name="AntiDepActive" type="Label" parent="HUD/debug"] +margin_top = 15.0 +margin_right = 40.0 +margin_bottom = 29.0 +text = "0" + +[node name="MoodStabActive" type="Label" parent="HUD/debug"] +margin_top = 29.0 +margin_right = 40.0 +margin_bottom = 43.0 +text = "0" + +[node name="Obstacles" type="Node" parent="."] + +[node name="Cube" type="StaticBody" parent="Obstacles"] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.38033, -7.65238 ) + +[node name="MeshInstance" type="MeshInstance" parent="Obstacles/Cube"] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.3771, 0 ) +mesh = SubResource( 4 ) +material/0 = null + +[node name="CollisionShape" type="CollisionShape" parent="Obstacles/Cube"] +shape = SubResource( 5 ) + +[node name="Cube2" type="StaticBody" parent="Obstacles"] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 4.48708, 3.53697, -7.65238 ) + +[node name="MeshInstance" type="MeshInstance" parent="Obstacles/Cube2"] +mesh = SubResource( 4 ) +material/0 = null + +[node name="CollisionShape" type="CollisionShape" parent="Obstacles/Cube2"] +shape = SubResource( 5 ) + +[node name="house" type="Node" parent="Obstacles"] + +[node name="wall" type="StaticBody" parent="Obstacles/house"] +transform = Transform( -4.37114e-07, 0, 1, 0, 5, 0, -10, 0, -4.37114e-08, -12, 5, 25 ) + +[node name="MeshInstance" type="MeshInstance" parent="Obstacles/house/wall"] +transform = Transform( 1, 0, -4.44089e-16, 0, 1, 0, 0, 0, 1, 0, 0, 0 ) +mesh = SubResource( 14 ) +material/0 = null + +[node name="CollisionShape" type="CollisionShape" parent="Obstacles/house/wall"] +shape = SubResource( 15 ) + +[node name="wall2" type="StaticBody" parent="Obstacles/house"] +transform = Transform( -4.37114e-07, 0, 1, 0, 5, 0, -10, 0, -4.37114e-08, 6, 5, 25 ) + +[node name="MeshInstance" type="MeshInstance" parent="Obstacles/house/wall2"] +transform = Transform( 1, 0, -4.44089e-16, 0, 1, 0, 0, 0, 1, 0, 0, 0 ) +mesh = SubResource( 14 ) +material/0 = null + +[node name="CollisionShape" type="CollisionShape" parent="Obstacles/house/wall2"] +shape = SubResource( 15 ) + +[node name="wall3" type="StaticBody" parent="Obstacles/house"] +transform = Transform( 10, 0, 0, 0, 5, 0, 0, 0, 1, -3, 5, 34 ) + +[node name="MeshInstance" type="MeshInstance" parent="Obstacles/house/wall3"] +transform = Transform( 1, 0, -4.44089e-16, 0, 1, 0, 0, 0, 1, 0, 0, 0 ) +mesh = SubResource( 14 ) +material/0 = null + +[node name="CollisionShape" type="CollisionShape" parent="Obstacles/house/wall3"] +shape = SubResource( 15 ) + +[node name="table" type="StaticBody" parent="Obstacles/house"] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -3, 1, 30 ) + +[node name="candle" type="StaticBody" parent="Obstacles/house/table"] +transform = Transform( 0.1, 0, 0, 0, 0.3, 0, 0, 0, 0.1, 0, 1.3, 0 ) + +[node name="MeshInstance" type="MeshInstance" parent="Obstacles/house/table/candle"] +transform = Transform( 1, 0, -4.44089e-16, 0, 1, 0, 0, 0, 1, 0, 0, 0 ) +mesh = SubResource( 14 ) +material/0 = null + +[node name="CollisionShape" type="CollisionShape" parent="Obstacles/house/table/candle"] +shape = SubResource( 15 ) + +[node name="Candle" type="OmniLight" parent="Obstacles/house/table/candle"] +transform = Transform( 10, 0, 0, 0, 3.33333, 0, 0, 0, 10, 0, 1.62651, 0 ) +light_color = Color( 1, 0.4, 0, 1 ) +shadow_enabled = true +omni_range = 3.685 +script = ExtResource( 8 ) + +[node name="Particles" type="Particles" parent="Obstacles/house/table/candle"] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.97687, 0 ) +cast_shadow = 0 +process_material = SubResource( 18 ) +draw_pass_1 = SubResource( 20 ) + +[node name="wick" type="StaticBody" parent="Obstacles/house/table/candle"] +transform = Transform( 0.1, 0, 0, 0, 0.3, 0, 0, 0, 0.1, 0, 1.20929, 0 ) + +[node name="MeshInstance" type="MeshInstance" parent="Obstacles/house/table/candle/wick"] +mesh = SubResource( 21 ) +material/0 = null + +[node name="CollisionShape" type="CollisionShape" parent="Obstacles/house/table/candle/wick"] +shape = SubResource( 22 ) + +[node name="MeshInstance" type="MeshInstance" parent="Obstacles/house/table"] +transform = Transform( 1, 0, -4.44089e-16, 0, 1, 0, 0, 0, 1, 0, 0, 0 ) +mesh = SubResource( 14 ) +material/0 = null + +[node name="CollisionShape" type="CollisionShape" parent="Obstacles/house/table"] +shape = SubResource( 15 ) + +[node name="roof" type="StaticBody" parent="Obstacles/house"] +transform = Transform( 10, 0, 0, 0, -4.37114e-07, -1, 0, 10, -4.37114e-08, -3, 9, 25 ) + +[node name="MeshInstance" type="MeshInstance" parent="Obstacles/house/roof"] +transform = Transform( 1, 0, -4.44089e-16, 0, 1, 0, 0, 0, 1, 0, 0, 0 ) +mesh = SubResource( 14 ) +material/0 = null + +[node name="CollisionShape" type="CollisionShape" parent="Obstacles/house/roof"] +shape = SubResource( 15 ) + +[node name="Lighting" type="Node" parent="."] + +[node name="SpotLight" type="SpotLight" parent="Lighting"] +transform = Transform( 1, 0, 0, 0, 0.5, 0.866025, 0, -0.866025, 0.5, 0, 13.7321, 0 ) +light_energy = 1.175 +shadow_enabled = true +spot_range = 32.621 + +[node name="MeshInstance" type="MeshInstance" parent="Lighting/SpotLight"] +transform = Transform( 0.1, 0, 0, 0, 0.1, 0, 0, 0, 0.1, 0, 0, 0 ) +mesh = SubResource( 7 ) +material/0 = null + +[node name="Sun" type="DirectionalLight" parent="Lighting"] +transform = Transform( 0.906308, -0.397131, 0.144544, 0, 0.34202, 0.939693, -0.422618, -0.851651, 0.309975, 0, 58.3521, 1.32686 ) +light_color = Color( 1, 0.964706, 0.858824, 1 ) +light_energy = 0.706 +shadow_enabled = true + +[node name="Timer" type="Node" parent="."] + +[node name="StableTimer" type="Timer" parent="Timer"] +one_shot = true + +[node name="ManiaTimer" type="Timer" parent="Timer"] +one_shot = true + +[node name="DepressionTimer" type="Timer" parent="Timer"] +one_shot = true + +[node name="WorldEnvironment" type="WorldEnvironment" parent="."] +environment = SubResource( 16 ) diff --git a/MoodStabilizer.gd b/MoodStabilizer.gd new file mode 100644 index 0000000..913e3a7 --- /dev/null +++ b/MoodStabilizer.gd @@ -0,0 +1,26 @@ +extends Area + +# Declare member variables here. Examples: +# var a = 2 +# var b = "text" + +var player + + +# Called when the node enters the scene tree for the first time. +func _ready(): + player = get_node(@"../../../Player") + #pass # Replace with function body. + +func _physics_process(delta): + rotate_y(delta) + + if(overlaps_body(player)): + player.addMoodStabilizer() + queue_free() + + + +# Called every frame. 'delta' is the elapsed time since the previous frame. +#func _process(delta): +# pass diff --git a/Player.gd b/Player.gd new file mode 100644 index 0000000..ef09541 --- /dev/null +++ b/Player.gd @@ -0,0 +1,183 @@ +extends KinematicBody + + +# Declare member variables here. Examples: +# var a = 2 +# var b = "text" + +var MAX_SPEED = 7 +var ACCEL = 3.5 +var DEACCEL= 16 +var MAX_SLOPE_ANGLE = 40 + +# The downward acceleration when in the air, in meters per second squared. +export var fall_acceleration = 75 + +export var jump_impulse = 22 + +var velocity = Vector3.ZERO + +var rotation_helper + +var MOUSE_SENSITIVITY = 0.05 + +onready var camera = $CameraPivot/Camera + +var vel = Vector3() +var dir = Vector3() + +#medicine +var moodStabilizer = 0 +var antiDepressant = 0 + +var hud + +func _process(_delta): + pass + + +func _physics_process(delta): + # We create a local variable to store the input direction. + dir = Vector3() + var cam_xform = camera.get_global_transform() + + var input_movement_vector = Vector2() + + # We check for each move input and update the direction accordingly. + if Input.is_action_pressed("move_right"): + input_movement_vector.x += 1 + if Input.is_action_pressed("move_left"): + input_movement_vector.x -= 1 + if Input.is_action_pressed("move_back"): + # Notice how we are working with the vector's x and z axes. + # In 3D, the XZ plane is the ground plane. + input_movement_vector.y -= 1 + if Input.is_action_pressed("move_forward"): + input_movement_vector.y += 1 + + input_movement_vector = input_movement_vector.normalized() + + dir += -cam_xform.basis.z.normalized() * input_movement_vector.y + dir += cam_xform.basis.x.normalized() * input_movement_vector.x + + + dir.y = 0 + dir = dir.normalized() + + + + var hvel = vel + hvel.y = 0 + + var target = dir + target *= MAX_SPEED + + var accel + if dir.dot(hvel) > 0: + accel = ACCEL + else: + accel = DEACCEL + + hvel = hvel.linear_interpolate(target, accel * delta) + vel.x = hvel.x + vel.z = hvel.z + + vel.y -= fall_acceleration * delta + + + if is_on_floor() and Input.is_action_just_pressed("jump"): + vel.y += jump_impulse + + vel = move_and_slide(vel, Vector3(0, 1, 0), 0.05, 4, deg2rad(MAX_SLOPE_ANGLE)) + + + + +# Declare member variables here. Examples: +# var a = 2 +# var b = "text" + +func _input(event): + if event is InputEventMouseMotion and Input.get_mouse_mode() == Input.MOUSE_MODE_CAPTURED: + rotation_helper.rotate_x(deg2rad(event.relative.y * MOUSE_SENSITIVITY * -1)) + self.rotate_y(deg2rad(event.relative.x * MOUSE_SENSITIVITY * -1)) + + var camera_rot = rotation_helper.rotation_degrees + camera_rot.x = clamp(camera_rot.x, -90, 90) + rotation_helper.rotation_degrees = camera_rot + +func setManic(multiplyer): + MAX_SPEED = 12 + ACCEL = 2.75 * multiplyer + DEACCEL= 4 * multiplyer + MAX_SLOPE_ANGLE = 40 + fall_acceleration = 75 + jump_impulse = 16 * multiplyer + MOUSE_SENSITIVITY = 0.2 * multiplyer + +func setNormal(): + MAX_SPEED = 7 + ACCEL = 3.5 + DEACCEL= 16 + MAX_SLOPE_ANGLE = 40 + fall_acceleration = 75 + jump_impulse = 22 + MOUSE_SENSITIVITY = 0.05 + +func setDepressed(multiplyer): + MAX_SPEED = 4 / multiplyer + ACCEL = 1 / multiplyer + DEACCEL= 64 / multiplyer + MAX_SLOPE_ANGLE = 40 + fall_acceleration = 75 + jump_impulse = 22 / multiplyer + MOUSE_SENSITIVITY = 0.02 / multiplyer + +# Called when the node enters the scene tree for the first time. +func _ready(): + rotation_helper = $CameraPivot + hud = get_node(@"../HUD") + + + + #pass # Replace with function body. + +# Called when the node enters the scene tree for the first time. +#func _ready(): +# pass # Replace with function body. + + +# Called every frame. 'delta' is the elapsed time since the previous frame. +#func _process(delta): +# pass + + +func addMoodStabilizer(): + moodStabilizer = moodStabilizer + 1 + print("current mood stabilizer: ", moodStabilizer) + hud.showMoodStab(String(moodStabilizer)) + +func addAntiDepressant(): + antiDepressant = antiDepressant + 1 + print("current anti depressant: ", antiDepressant) + hud.showAntiDep(String(antiDepressant)) + +func takeMoodStabilizer(): + if(moodStabilizer>0): + moodStabilizer = moodStabilizer - 1 + + print("current mood stabilizer: ", moodStabilizer) + hud.showMoodStab(String(moodStabilizer)) + +func takeAntiDepressant(): + if(antiDepressant>0): + antiDepressant = antiDepressant - 1 + + print("current anti depressant: ", antiDepressant) + hud.showAntiDep(String(antiDepressant)) + +func getMoodStabilizer(): + return moodStabilizer + +func getAntiDepressant(): + return antiDepressant diff --git a/assets/ground.png b/assets/ground.png new file mode 100644 index 0000000000000000000000000000000000000000..5c417a6ce6b1d6693ef06c0e7cdc8caa1e14cce9 GIT binary patch literal 12617 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 bi3gOq!8Y;nEMo|8K_Al7GSnw1D literal 0 HcmV?d00001 diff --git a/assets/ground.png.import b/assets/ground.png.import new file mode 100644 index 0000000..7a99c60 --- /dev/null +++ b/assets/ground.png.import @@ -0,0 +1,37 @@ +[remap] + +importer="texture" +type="StreamTexture" +path.s3tc="res://.import/ground.png-328d82a69941a655cdd4638d3455ed11.s3tc.stex" +path.etc2="res://.import/ground.png-328d82a69941a655cdd4638d3455ed11.etc2.stex" +metadata={ +"imported_formats": [ "s3tc", "etc2" ], +"vram_texture": true +} + +[deps] + +source_file="res://assets/ground.png" +dest_files=[ "res://.import/ground.png-328d82a69941a655cdd4638d3455ed11.s3tc.stex", "res://.import/ground.png-328d82a69941a655cdd4638d3455ed11.etc2.stex" ] + +[params] + +compress/mode=2 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=true +flags/filter=true +flags/mipmaps=true +flags/anisotropic=false +flags/srgb=1 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +process/normal_map_invert_y=false +stream=false +size_limit=0 +detect_3d=false +svg/scale=1.0 diff --git a/default_env.tres b/default_env.tres new file mode 100644 index 0000000..20207a4 --- /dev/null +++ b/default_env.tres @@ -0,0 +1,7 @@ +[gd_resource type="Environment" load_steps=2 format=2] + +[sub_resource type="ProceduralSky" id=1] + +[resource] +background_mode = 2 +background_sky = SubResource( 1 ) diff --git a/export_presets.cfg b/export_presets.cfg new file mode 100644 index 0000000..0e2d7f3 --- /dev/null +++ b/export_presets.cfg @@ -0,0 +1,24 @@ +[preset.0] + +name="Linux/X11" +platform="Linux/X11" +runnable=true +custom_features="" +export_filter="all_resources" +include_filter="" +exclude_filter="" +export_path=".export/linux/game.x86_64" +script_export_mode=1 +script_encryption_key="" + +[preset.0.options] + +custom_template/debug="" +custom_template/release="" +binary_format/64_bits=true +binary_format/embed_pck=false +texture_format/bptc=false +texture_format/s3tc=true +texture_format/etc=false +texture_format/etc2=false +texture_format/no_bptc_fallbacks=true diff --git a/icon.png b/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..c98fbb601c83c81ec8c22b1dba7d1d57c62b323c GIT binary patch literal 3305 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 literal 0 HcmV?d00001 diff --git a/icon.png.import b/icon.png.import new file mode 100644 index 0000000..a4c02e6 --- /dev/null +++ b/icon.png.import @@ -0,0 +1,35 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/icon.png-487276ed1e3a0c39cad0279d744ee560.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://icon.png" +dest_files=[ "res://.import/icon.png-487276ed1e3a0c39cad0279d744ee560.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=true +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +process/normal_map_invert_y=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/project.godot b/project.godot new file mode 100644 index 0000000..76069bc --- /dev/null +++ b/project.godot @@ -0,0 +1,107 @@ +; Engine configuration file. +; It's best edited using the editor UI and not directly, +; since the parameters that go here are not all obvious. +; +; Format: +; [section] ; section goes between [] +; param=value ; assign values to parameters + +config_version=4 + +[application] + +config/name="AShadowWithoutLight" +run/main_scene="res://Main.tscn" +config/icon="res://icon.png" + +[global] + +shadow=false + +[input] + +move_left={ +"deadzone": 0.5, +"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":65,"physical_scancode":0,"unicode":0,"echo":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777231,"physical_scancode":0,"unicode":0,"echo":false,"script":null) +, Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":0,"axis_value":-1.0,"script":null) + ] +} +move_right={ +"deadzone": 0.5, +"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":68,"physical_scancode":0,"unicode":0,"echo":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777233,"physical_scancode":0,"unicode":0,"echo":false,"script":null) +, Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":0,"axis_value":1.0,"script":null) + ] +} +move_forward={ +"deadzone": 0.5, +"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":87,"physical_scancode":0,"unicode":0,"echo":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777232,"physical_scancode":0,"unicode":0,"echo":false,"script":null) +, Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":1,"axis_value":-1.0,"script":null) + ] +} +move_back={ +"deadzone": 0.5, +"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":83,"physical_scancode":0,"unicode":0,"echo":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777234,"physical_scancode":0,"unicode":0,"echo":false,"script":null) +, Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":1,"axis_value":1.0,"script":null) + ] +} +jump={ +"deadzone": 0.5, +"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":32,"physical_scancode":0,"unicode":0,"echo":false,"script":null) +, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":0,"pressure":0.0,"pressed":false,"script":null) + ] +} +quit={ +"deadzone": 0.5, +"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777217,"physical_scancode":0,"unicode":0,"echo":false,"script":null) +, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":11,"pressure":0.0,"pressed":false,"script":null) + ] +} +mania={ +"deadzone": 0.5, +"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":69,"physical_scancode":0,"unicode":0,"echo":false,"script":null) +, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":3,"pressure":0.0,"pressed":false,"script":null) + ] +} +depression={ +"deadzone": 0.5, +"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":81,"physical_scancode":0,"unicode":0,"echo":false,"script":null) +, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":2,"pressure":0.0,"pressed":false,"script":null) + ] +} +flashlight={ +"deadzone": 0.5, +"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":70,"physical_scancode":0,"unicode":0,"echo":false,"script":null) +, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":1,"pressure":0.0,"pressed":false,"script":null) + ] +} +click={ +"deadzone": 0.5, +"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) +, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":5,"pressure":0.0,"pressed":false,"script":null) + ] +} +reset={ +"deadzone": 0.5, +"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":82,"physical_scancode":0,"unicode":0,"echo":false,"script":null) +, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":4,"pressure":0.0,"pressed":false,"script":null) + ] +} + +[physics] + +common/enable_pause_aware_picking=true + +[rendering] + +quality/directional_shadow/size=8192 +quality/directional_shadow/size.mobile=4096 +quality/shadow_atlas/size=8192 +quality/shadow_atlas/size.mobile=4096 +quality/shadow_atlas/cubemap_size=1024 +quality/shadows/filter_mode=2 +quality/shadows/filter_mode.mobile=2 +environment/default_environment="res://default_env.tres"