mergeSurge

This commit is contained in:
Ententerminator 2020-01-28 17:56:25 +01:00
commit 0b31bda8c5
52 changed files with 9761 additions and 555 deletions

View File

@ -1,8 +1,7 @@
extends NPC extends NPC
#export(NodePath) var _visibility_path: NodePath export(int) var _player_follow_pill_level = Pills.LEVELS.MEDIUM
export(int) var _player_follow_pill_level = 3
onready var visibility_cone_mesh = get_node("Visibility/VisibilityCone") onready var visibility_cone_mesh = get_node("Visibility/VisibilityCone")
@ -33,12 +32,19 @@ var _interactArea: Area
var _audioPlayer: AudioStreamPlayer3D var _audioPlayer: AudioStreamPlayer3D
var _playerRef var _playerRef
onready var _start_pos = transform.origin
onready var _start_rot: Vector3 = rotation_degrees
var _followingPlayer = false # true if Meldewesen finds player "suspicios" and follows var _followingPlayer = false # true if Meldewesen finds player "suspicios" and follows
var _huntingPlayer = false # active if the Meldewesen wants to "catch" the player var _huntingPlayer = false # active if the Meldewesen wants to "catch" the player
var _seeingPlayer = false # as long as player is in visible range var _seeingPlayer = false # as long as player is in visible range
var _lastSound = 0 # timestamp of last played message var _lastSound = 0 # timestamp of last played message
var _countCmds = 0 # count of spoken commands -> after MAX_CMDS Meldewesen gets pissy var _countCmds = 0 # count of spoken commands -> after MAX_CMDS Meldewesen gets pissy
# test only
var _prev_target = null
func _ready(): func _ready():
#Logger.set_logger_level(Logger.LOG_LEVEL_FINE) #Logger.set_logger_level(Logger.LOG_LEVEL_FINE)
@ -68,18 +74,27 @@ func _ready():
func _process(_delta): func _process(_delta):
# movement # movement
if current_target: if current_target:
if _prev_target != current_target:
#Logger.info("current target: " + String(current_target))
_prev_target = current_target
# continue following player after illegal action or low pill level # continue following player after illegal action or low pill level
if _huntingPlayer or (_followingPlayer and Pills.get_round_level() <= _player_follow_pill_level): if _huntingPlayer or (_followingPlayer and Pills.get_round_level() <= _player_follow_pill_level):
current_target = _playerRef.transform.origin current_target = _playerRef.transform.origin
# stop following player if pill level is high enough and player is not in an illegal area # stop following player if pill level is high enough and player is not in an illegal area
else: else:
Logger.info("player pill level ok and no illegal actions detected!") if _followingPlayer:
_followingPlayer = false Logger.info("player pill level ok and no illegal actions detected!")
current_target = null _followingPlayer = false
current_target = _start_pos
elif current_target == _start_pos and transform.origin.distance_to(current_target) < 0.1:
Logger.info("the watch begins")
current_target = null
current_look_target = null
rotation_degrees = _start_rot
if _seeingPlayer: if _seeingPlayer:
# logic _set_behavior() # logic
_set_behavior()
# audio # audio
if _audioPlayer.stream != null: if _audioPlayer.stream != null:
@ -97,8 +112,9 @@ func _on_area_entered (area: Area):
func change_visibility_cone_color(new_color: Color): func change_visibility_cone_color(new_color: Color):
visibility_cone_mesh.get_surface_material(0).albedo_color = new_color if visibility_cone_mesh.get_surface_material(0).albedo_color != new_color:
visibility_cone_mesh.get_surface_material(0).albedo_color.a = VISIBILITY_CONE_ALPHA visibility_cone_mesh.get_surface_material(0).albedo_color = new_color
visibility_cone_mesh.get_surface_material(0).albedo_color.a = VISIBILITY_CONE_ALPHA
func _load_sound (): func _load_sound ():
@ -189,8 +205,7 @@ func _on_body_entered_visibility (body: PhysicsBody):
if body.is_in_group("Player"): if body.is_in_group("Player"):
Logger.info("Seeing player!") Logger.info("Seeing player!")
_seeingPlayer = true _seeingPlayer = true
#_set_behavior()
_set_behavior()
func _on_body_exited_visibility(body: PhysicsBody): func _on_body_exited_visibility(body: PhysicsBody):
@ -199,4 +214,6 @@ func _on_body_exited_visibility(body: PhysicsBody):
_seeingPlayer = false _seeingPlayer = false
_countCmds = 0 _countCmds = 0
if _huntingPlayer == false and _followingPlayer == false: if _huntingPlayer == false and _followingPlayer == false:
current_target = null # dirty quickfix: TODO: refactor
if current_target != _start_pos:
current_target = null

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,24 @@
extends Area
onready var rays = get_node("InteractCheckRays")
var max_distance = 20
func _process(delta: float) -> void:
var new_scale = 1.0
for ray in rays.get_children():
var collision_point = ray.get_collision_point()
if collision_point:
var distance = collision_point.distance_to(global_transform.origin)
if distance < max_distance:
var potential_new_scale = distance / max_distance
if potential_new_scale < new_scale:
new_scale = potential_new_scale
scale = Vector3(new_scale, 1.0, new_scale)

View File

@ -1,6 +1,7 @@
[gd_resource type="SpatialMaterial" format=2] [gd_resource type="SpatialMaterial" format=2]
[resource] [resource]
resource_local_to_scene = true
flags_transparent = true flags_transparent = true
params_cull_mode = 2 params_cull_mode = 2
albedo_color = Color( 1, 0, 0, 0.329412 ) albedo_color = Color( 1, 0, 0, 0.329412 )

View File

@ -10,6 +10,13 @@ func _ready():
func _process(delta: float) -> void: func _process(delta: float) -> void:
# The factor is 0 when the level is between 0% and 25%; 1 when the level is between 75% and 100%; lerp inbetween # The factor is 0 when the pill level is zero.
var factor = clamp((Pills.get_level() / Pills.get_max() * 1.5 - 0.25), 0.0, 1.0) # Between pill level 0 and 0.5, the factor scales between 0 and 1.
var factor
if Pills.get_normalized_level() < 0.5:
factor = Pills.get_normalized_level() * 2.0
else:
factor = 1.0
screen_texture.material.set_shader_param("mask_factor", factor) screen_texture.material.set_shader_param("mask_factor", factor)

View File

@ -6,6 +6,7 @@ export(NodePath) var lookingAt_nodepath
export(NodePath) var animationWalk_nodepath export(NodePath) var animationWalk_nodepath
export(NodePath) var animationFadeOut_nodepath export(NodePath) var animationFadeOut_nodepath
export(NodePath) var ui_interact_nodepath export(NodePath) var ui_interact_nodepath
export(NodePath) var ui_message_nodepath
export(NodePath) var camera_nodepath export(NodePath) var camera_nodepath
export(int) var keycard_lvl export(int) var keycard_lvl
export(Array) var key_chain export(Array) var key_chain
@ -27,6 +28,7 @@ var _lookCast: RayCast
var _animationWalk: AnimationPlayer var _animationWalk: AnimationPlayer
var _animationFadeOut: AnimationPlayer var _animationFadeOut: AnimationPlayer
var _labelInteract: Label var _labelInteract: Label
var _labelMessage: Label
var _dir = Vector3() var _dir = Vector3()
var _vel = Vector3() var _vel = Vector3()
var _is_sprinting : bool var _is_sprinting : bool
@ -72,6 +74,9 @@ func _ready():
_labelInteract = get_node(ui_interact_nodepath) as Label _labelInteract = get_node(ui_interact_nodepath) as Label
assert(null != _labelInteract) assert(null != _labelInteract)
_labelMessage = get_node(ui_message_nodepath) as Label
assert(null != _labelMessage)
# Setup mouse look # Setup mouse look
Input.set_mouse_mode(Input.MOUSE_MODE_CAPTURED) Input.set_mouse_mode(Input.MOUSE_MODE_CAPTURED)
_lookCast = get_node(lookingAt_nodepath) as RayCast _lookCast = get_node(lookingAt_nodepath) as RayCast
@ -85,6 +90,9 @@ func _ready():
Daytime.increase_per_second = 100 Daytime.increase_per_second = 100
Pills._decrease_per_second = 0.8 Pills._decrease_per_second = 0.8
if IsInFactory:
Daytime.increase_per_second = 0
# setup collisions with Meldewesen # setup collisions with Meldewesen
var area = get_node("InteractArea") as Area var area = get_node("InteractArea") as Area
assert(null != area) assert(null != area)
@ -98,6 +106,16 @@ func _ready():
player.stream = load("res://Resources/Audio/cock.wav") player.stream = load("res://Resources/Audio/cock.wav")
player.play() player.play()
func showMessage (text, duration):
_labelMessage.text = text
# animation
var timer = _inventory.get_node("Timer") as Timer
timer.wait_time = duration
timer.start()
_labelMessage.show()
yield(timer, "timeout")
_labelMessage.hide()
func _physics_process(delta): func _physics_process(delta):
process_input() process_input()
@ -180,7 +198,8 @@ func check_interact():
if Input.is_action_just_pressed("interact"): if Input.is_action_just_pressed("interact"):
collider.do_interact(self) collider.do_interact(self)
if collider.is_in_group("Collectibles"): if collider.is_in_group("Collectibles"):
_inventory.add_item(collider.name) _inventory.add_item(collider)
Inventory.add_item(collider.duplicate())
_prev_look = null # remove after taken _prev_look = null # remove after taken
_labelInteract.hide() _labelInteract.hide()
else: else:
@ -220,15 +239,26 @@ func _on_area_entered (area: Area):
Logger.info("entering factory") Logger.info("entering factory")
IsInFactory = true IsInFactory = true
IsOutside = false IsOutside = false
# TODO: move not change_scene!
get_tree().change_scene("res://Level/InFactory.tscn") get_tree().change_scene("res://Level/InFactory.tscn")
elif area.is_in_group("TunnelEntry"):
Logger.info("entering factory")
IsInFactory = false
IsOutside = false
# TODO: move not change_scene!
get_tree().change_scene("res://Level/Tunnel.tscn")
# TODO: other entries # TODO: other entries
elif area.is_in_group("OutsideEntry"): elif area.is_in_group("OutsideEntry"):
Logger.info("leaving factory") Logger.info("leaving factory")
IsInFactory = false IsInFactory = false
IsOutside = true IsOutside = true
# TODO: move not change_scene! # TODO: move not change_scene!
get_tree().change_scene("res://Level/World.tscn") get_tree().change_scene("res://Level/OutsideWorld.tscn")
elif area.is_in_group("LabyrinthEntry"):
Logger.info("entering labyrinth")
IsInFactory = false
IsInLabyrinth = true
# TODO: move not change_scene!
get_tree().change_scene("res://Level/Labyrinth.tscn")
func _on_area_exited (area: Area): func _on_area_exited (area: Area):
@ -244,7 +274,7 @@ func _on_area_exited (area: Area):
func _on_respawn (): func _on_respawn ():
Logger.info("respawning") #Logger.info("respawning")
# fade to black and restart scene # fade to black and restart scene
_inventory.hide() # disable hud for the time of respawn animation _inventory.hide() # disable hud for the time of respawn animation
@ -257,9 +287,12 @@ func _on_respawn ():
#Logger.info("save areas: " + String(_save_areas)) #Logger.info("save areas: " + String(_save_areas))
if _save_areas < 1 and not IsInLabyrinth: if _save_areas < 1 and not IsInLabyrinth:
Logger.info("reload scene") Logger.info("move back to home")
Pills._set_level(Pills.get_max()) Pills._set_level(Pills.get_max())
get_tree().reload_current_scene() IsInFactory = false
IsOutside = true
# TODO: move not change_scene!
get_tree().change_scene("res://Level/OutsideWorld.tscn")
_inventory.show() # enable hud again _inventory.show() # enable hud again

View File

@ -158,6 +158,7 @@ random_pitch = 1.3
[node name="Player" type="KinematicBody" groups=[ [node name="Player" type="KinematicBody" groups=[
"Player", "Player",
]] ]]
editor/display_folded = true
collision_layer = 5 collision_layer = 5
collision_mask = 5 collision_mask = 5
script = ExtResource( 1 ) script = ExtResource( 1 )
@ -166,6 +167,7 @@ lookingAt_nodepath = NodePath("Body/PillCameras/LookingAt")
animationWalk_nodepath = NodePath("WalkAnimationPlayer") animationWalk_nodepath = NodePath("WalkAnimationPlayer")
animationFadeOut_nodepath = NodePath("FadeOutAnimationPlayer") animationFadeOut_nodepath = NodePath("FadeOutAnimationPlayer")
ui_interact_nodepath = NodePath("HUD/PressInteract") ui_interact_nodepath = NodePath("HUD/PressInteract")
ui_message_nodepath = NodePath("HUD/Info")
camera_nodepath = NodePath("Body/PillCameras") camera_nodepath = NodePath("Body/PillCameras")
[node name="Body" type="Spatial" parent="."] [node name="Body" type="Spatial" parent="."]
@ -175,7 +177,7 @@ transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -0.0461721, 1.84617, 0 )
script = ExtResource( 2 ) script = ExtResource( 2 )
[node name="LookingAt" type="RayCast" parent="Body/PillCameras"] [node name="LookingAt" type="RayCast" parent="Body/PillCameras"]
transform = Transform( -1, 0, -8.74228e-008, 0, 1, 0, 8.74228e-008, 0, -1, 0, 0, 0 ) transform = Transform( -1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, 0, 0, 0 )
enabled = true enabled = true
cast_to = Vector3( 0, 0, 2 ) cast_to = Vector3( 0, 0, 2 )
collision_mask = 3 collision_mask = 3
@ -193,6 +195,7 @@ script = ExtResource( 3 )
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -0.0461721, 1.84617, 0 ) transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -0.0461721, 1.84617, 0 )
cull_mask = 2 cull_mask = 2
current = true current = true
far = 1000.0
[node name="MaskedView" type="Viewport" parent="Body/PillCameras"] [node name="MaskedView" type="Viewport" parent="Body/PillCameras"]
render_target_update_mode = 3 render_target_update_mode = 3
@ -204,6 +207,7 @@ script = ExtResource( 3 )
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -0.0461721, 1.84617, 0 ) transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -0.0461721, 1.84617, 0 )
cull_mask = 1 cull_mask = 1
current = true current = true
far = 1000.0
[node name="ScreenTextureView" type="ColorRect" parent="Body/PillCameras"] [node name="ScreenTextureView" type="ColorRect" parent="Body/PillCameras"]
material = SubResource( 3 ) material = SubResource( 3 )
@ -274,7 +278,7 @@ transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0 )
script = ExtResource( 11 ) script = ExtResource( 11 )
[node name="Pills" parent="PillTaker" instance=ExtResource( 12 )] [node name="Pills" parent="PillTaker" instance=ExtResource( 12 )]
transform = Transform( 0.1, 0, 0, 0, -4.37114e-009, 0.1, 0, -0.1, -4.37114e-009, 0, 0.7, 0 ) transform = Transform( 0.1, 0, 0, 0, -4.37114e-09, 0.1, 0, -0.1, -4.37114e-09, 0, 0.7, 0 )
visible = false visible = false
[editable path="HUD"] [editable path="HUD"]

View File

@ -7,8 +7,14 @@ var _labelDayTime: Label
var _dayTime: ProgressBar var _dayTime: ProgressBar
var _dayTimeVisual: TextureRect var _dayTimeVisual: TextureRect
onready var _keyTexture = load("res://Resources/Models/key/key.png") onready var _keyTexture = preload("res://Resources/Models/key/key.png")
onready var _cardTexture = load("res://Resources/Models/keycard/keycard.png") var _cardTexture = {
1: preload("res://Resources/Models/keycard/lvl1_keycard.png"),
2: preload("res://Resources/Models/keycard/lvl2_keycard.png")
}
onready var _pillFill = preload("res://Resources/Textures/pillLevel_fill.png")
onready var _pillDanger = preload("res://Resources/Textures/pillLevel_danger.png")
# Called when the node enters the scene tree for the first time. # Called when the node enters the scene tree for the first time.
func _ready(): func _ready():
@ -22,28 +28,46 @@ func _ready():
# TODO: may use global values in Inspector? # TODO: may use global values in Inspector?
_pillLevel.max_value = Pills.get_max() _pillLevel.max_value = Pills.get_max()
_dayTime.max_value = Daytime.get_max() _dayTime.max_value = Daytime.get_max()
for object in Inventory.get_items():
add_item(object)
func add_item (name): func add_item (object):
Logger.info("Adding item \"" + name + "\" to inventory") Logger.info("Adding item \"" + object.name + "\" with class \"" + String(object.get_class()) + "\" to inventory")
var text var texture
if name == "Key": if object is Key:
text = _keyTexture Logger.info("key")
elif name == "Keycard": texture = _keyTexture
text = _cardTexture elif object is Keycard:
Logger.info("keycard")
var lvl = (object as Keycard).card_lvl
if _cardTexture.has(lvl) == false:
Logger.info("no keycard model for lvl: " + String(lvl))
return
texture = _cardTexture[lvl]
else: else:
Logger.info("no texture found for: " + object.name)
return return
var rect = TextureRect.new() var rect = TextureRect.new()
rect.texture = text rect.texture = texture
_container.add_child(rect) _container.add_child(rect)
func _process(_delta): func _process(_delta):
_labelPillLevel.text = "curLevel: " + String(Pills.get_level()) # pill level
_pillLevel.value = Pills.get_level() var val = Pills.get_level()
var val = int(Daytime.get_time()) _labelPillLevel.text = "curLevel: " + String(val)
_pillLevel.value = val
if val < Pills.LEVELS.MEDIUM:
_pillLevel.set_progress_texture(_pillDanger)
elif _pillLevel.get_progress_texture() != _pillFill:
_pillLevel.set_progress_texture(_pillFill)
# day time
val = int(Daytime.get_time())
#_labelDayTime.text = "dayTime: " + String(val) + " - %02d:%02d" % [val/60%24, val%60] #_labelDayTime.text = "dayTime: " + String(val) + " - %02d:%02d" % [val/60%24, val%60]
_dayTime.value = val _dayTime.value = val
_dayTimeVisual.rect_rotation = ((val/_dayTime.max_value) * 180) - 90 _dayTimeVisual.rect_rotation = ((val/_dayTime.max_value) * 180) - 90

View File

@ -13,6 +13,9 @@ margin_left = 10.2837
margin_right = 10.2837 margin_right = 10.2837
script = ExtResource( 1 ) script = ExtResource( 1 )
[node name="Timer" type="Timer" parent="."]
one_shot = true
[node name="PressInteract" type="Label" parent="."] [node name="PressInteract" type="Label" parent="."]
visible = false visible = false
modulate = Color( 0, 0, 0, 1 ) modulate = Color( 0, 0, 0, 1 )
@ -28,27 +31,49 @@ margin_bottom = -34.8594
custom_fonts/font = ExtResource( 2 ) custom_fonts/font = ExtResource( 2 )
text = "Press 'E' to interact" text = "Press 'E' to interact"
[node name="Info" type="Label" parent="."]
visible = false
modulate = Color( 0, 0, 0, 1 )
self_modulate = Color( 0, 0, 0, 1 )
anchor_left = 0.5
anchor_top = 1.0
anchor_right = 0.5
anchor_bottom = 1.0
margin_left = -153.0
margin_top = -106.0
margin_right = 153.0
margin_bottom = -82.0
custom_fonts/font = ExtResource( 2 )
text = "you don't havve the right key"
align = 1
[node name="InventoryContainer" type="GridContainer" parent="."] [node name="InventoryContainer" type="GridContainer" parent="."]
margin_left = 868.0 anchor_left = 1.0
margin_top = 48.0 anchor_top = 0.5
margin_right = 1007.0 anchor_right = 1.0
margin_bottom = 565.0 anchor_bottom = 0.5
margin_left = -146.0
margin_top = -258.5
margin_right = -7.0
margin_bottom = 258.5
[node name="PillLevel" type="Label" parent="."] [node name="PillLevel" type="Label" parent="."]
visible = false
margin_right = 40.0 margin_right = 40.0
margin_bottom = 14.0 margin_bottom = 14.0
[node name="PillProgress" type="TextureProgress" parent="."] [node name="PillProgress" type="TextureProgress" parent="."]
margin_left = -0.571533 margin_left = -0.571533
margin_top = 24.7845 margin_top = 9.7845
margin_right = 247.428 margin_right = 247.428
margin_bottom = 64.7845 margin_bottom = 49.7845
max_value = 7.0 max_value = 7.0
step = 0.1 step = 0.1
value = 6.0 value = 6.0
texture_progress = ExtResource( 3 ) texture_progress = ExtResource( 3 )
[node name="DayTime" type="Label" parent="."] [node name="DayTime" type="Label" parent="."]
visible = false
anchor_left = 1.0 anchor_left = 1.0
anchor_right = 1.0 anchor_right = 1.0
margin_left = -170.14 margin_left = -170.14
@ -57,6 +82,7 @@ margin_right = -130.14
margin_bottom = 21.3664 margin_bottom = 21.3664
[node name="DayTimeProgress" type="ProgressBar" parent="."] [node name="DayTimeProgress" type="ProgressBar" parent="."]
visible = false
margin_left = 850.901 margin_left = 850.901
margin_top = 30.7722 margin_top = 30.7722
margin_right = 988.901 margin_right = 988.901
@ -64,11 +90,11 @@ margin_bottom = 44.7722
rect_pivot_offset = Vector2( 67.8153, 7.2278 ) rect_pivot_offset = Vector2( 67.8153, 7.2278 )
[node name="DayTimeVisual" type="TextureRect" parent="."] [node name="DayTimeVisual" type="TextureRect" parent="."]
anchor_left = 0.5 anchor_left = 1.0
anchor_right = 0.5 anchor_right = 1.0
margin_left = -90.0 margin_left = -245.0
margin_top = -90.0 margin_top = -90.0
margin_right = 90.0 margin_right = -65.0
margin_bottom = 90.0 margin_bottom = 90.0
rect_rotation = 180.0 rect_rotation = 180.0
rect_pivot_offset = Vector2( 90, 90 ) rect_pivot_offset = Vector2( 90, 90 )

View File

@ -12,10 +12,8 @@ func _ready():
#Logger.set_logger_level(Logger.LOG_LEVEL_FINE) #Logger.set_logger_level(Logger.LOG_LEVEL_FINE)
_followPath = get_node("../") as PathFollow _followPath = get_node("../") as PathFollow
assert(null != _followPath)
_navPath = get_node("../../") as Path _navPath = get_node("../../") as Path
assert(null != _navPath)
var _interactArea = get_node("InteractArea") as Area var _interactArea = get_node("InteractArea") as Area
assert(null != _interactArea) assert(null != _interactArea)
@ -24,7 +22,8 @@ func _ready():
func _process(_delta): func _process(_delta):
# TODO: movement # TODO: movement
#if current_target: # should not be needed -> handled per navigation path #if current_target: # should not be needed -> handled per navigation path
_followPath.offset += diffPerSecond * _delta if _followPath != null:
_followPath.offset += diffPerSecond * _delta
func _on_area_entered (area: Area): func _on_area_entered (area: Area):

21
Global/Inventory.gd Normal file
View File

@ -0,0 +1,21 @@
extends Node
var items: Array
func _ready():
pass # Replace with function body.
func add_item (item):
if items.has(item):
return
items.append(item)
func contains_item (item):
return items.has(item)
func get_items ():
return items

View File

@ -0,0 +1,13 @@
[gd_scene load_steps=2 format=2]
[ext_resource path="res://Level/Buildings/BuildingBlock.tscn" type="PackedScene" id=1]
[node name="BuildingBlock" instance=ExtResource( 1 )]
[node name="True" parent="." index="1"]
visible = false
layers = 0
[node name="StaticBody" parent="." index="2"]
collision_layer = 1
collision_mask = 1

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -39,11 +39,13 @@ func do_interact(var player):
_isOpening = !_isOpening _isOpening = !_isOpening
else: else:
print("keycard level too low") print("keycard level too low")
player.showMessage("keycard level too low", 3)
elif player.key_chain.has(door_lvl) or door_lvl == 0: elif player.key_chain.has(door_lvl) or door_lvl == 0:
_isMoving = true _isMoving = true
_isOpening = !_isOpening _isOpening = !_isOpening
else: else:
print("you don't have the right key") print("you don't have the right key")
player.showMessage("you don't have the right key", 3)
# opens or closes the door # opens or closes the door

View File

@ -1,4 +1,5 @@
extends StaticBody extends StaticBody
class_name Key
export(int) var key_id export(int) var key_id
@ -6,6 +7,11 @@ onready var outline = get_node("KeyMesh/Outline") as MeshInstance
func do_interact(var player): func do_interact(var player):
# TODO: move to global inventory
player.key_chain.append(key_id) player.key_chain.append(key_id)
queue_free() queue_free()
func is_class(type): return type == "Key" or .is_class(type)
func get_class(): return "Key"

View File

@ -39,6 +39,7 @@ surfaces/0 = {
[node name="Key" type="StaticBody" groups=[ [node name="Key" type="StaticBody" groups=[
"Touchables", "Touchables",
"Collectibles",
]] ]]
script = ExtResource( 1 ) script = ExtResource( 1 )
@ -55,7 +56,7 @@ mesh = SubResource( 2 )
material/0 = ExtResource( 3 ) material/0 = ExtResource( 3 )
[node name="weirdModel" parent="." instance=ExtResource( 4 )] [node name="weirdModel" parent="." instance=ExtResource( 4 )]
transform = Transform( 0.1, 0, 0, 0, 0.1, 0, 0, 0, 0.1, 0, 0.01, 3.72529e-009 ) transform = Transform( 0.1, 0, 0, 0, 0.1, 0, 0, 0, 0.1, 0, 0.01, 3.72529e-09 )
visible = false visible = false
[node name="CollisionShape" type="CollisionShape" parent="."] [node name="CollisionShape" type="CollisionShape" parent="."]

View File

@ -1,4 +1,5 @@
extends StaticBody extends StaticBody
class_name Keycard
export(int) var card_lvl export(int) var card_lvl
@ -6,7 +7,12 @@ onready var outline = get_node("KeycardMesh/Outline") as MeshInstance
func do_interact(var player): func do_interact(var player):
# TODO: move to global inventory
if card_lvl > player.keycard_lvl: if card_lvl > player.keycard_lvl:
player.keycard_lvl = card_lvl player.keycard_lvl = card_lvl
queue_free() queue_free()
func is_class(type): return type == "Keycard" or .is_class(type)
func get_class(): return "Keycard"

View File

@ -9,7 +9,7 @@
[sub_resource type="ArrayMesh" id=1] [sub_resource type="ArrayMesh" id=1]
resource_name = "Cube" resource_name = "Cube"
surfaces/0 = { surfaces/0 = {
"aabb": AABB( 1, -1, -1, 1.00136e-005, 2, 2.00001 ), "aabb": AABB( 1, -1, -1, 1.00136e-05, 2, 2.00001 ),
"array_data": PoolByteArray( 0, 0, 128, 63, 205, 204, 76, 191, 0, 0, 128, 63, 127, 0, 0, 0, 0, 0, 129, 127, 0, 0, 51, 59, 0, 0, 128, 63, 0, 0, 128, 191, 129, 202, 89, 63, 127, 0, 0, 0, 0, 0, 129, 127, 198, 44, 0, 60, 0, 0, 128, 63, 0, 0, 128, 191, 154, 153, 89, 191, 127, 0, 0, 0, 0, 0, 129, 127, 102, 59, 0, 60, 0, 0, 128, 63, 205, 204, 76, 191, 0, 0, 128, 191, 127, 0, 0, 0, 0, 0, 129, 127, 0, 60, 51, 59, 0, 0, 128, 63, 205, 204, 76, 63, 0, 0, 128, 191, 127, 0, 0, 0, 0, 0, 130, 127, 0, 60, 102, 46, 0, 0, 128, 63, 0, 0, 128, 63, 154, 153, 89, 191, 127, 0, 0, 0, 0, 0, 129, 127, 102, 59, 0, 0, 0, 0, 128, 63, 0, 0, 128, 63, 154, 153, 89, 63, 127, 0, 0, 0, 0, 0, 129, 127, 204, 44, 0, 0, 0, 0, 128, 63, 205, 204, 76, 63, 0, 0, 128, 63, 127, 0, 0, 0, 0, 0, 129, 127, 0, 0, 102, 46 ), "array_data": PoolByteArray( 0, 0, 128, 63, 205, 204, 76, 191, 0, 0, 128, 63, 127, 0, 0, 0, 0, 0, 129, 127, 0, 0, 51, 59, 0, 0, 128, 63, 0, 0, 128, 191, 129, 202, 89, 63, 127, 0, 0, 0, 0, 0, 129, 127, 198, 44, 0, 60, 0, 0, 128, 63, 0, 0, 128, 191, 154, 153, 89, 191, 127, 0, 0, 0, 0, 0, 129, 127, 102, 59, 0, 60, 0, 0, 128, 63, 205, 204, 76, 191, 0, 0, 128, 191, 127, 0, 0, 0, 0, 0, 129, 127, 0, 60, 51, 59, 0, 0, 128, 63, 205, 204, 76, 63, 0, 0, 128, 191, 127, 0, 0, 0, 0, 0, 130, 127, 0, 60, 102, 46, 0, 0, 128, 63, 0, 0, 128, 63, 154, 153, 89, 191, 127, 0, 0, 0, 0, 0, 129, 127, 102, 59, 0, 0, 0, 0, 128, 63, 0, 0, 128, 63, 154, 153, 89, 63, 127, 0, 0, 0, 0, 0, 129, 127, 204, 44, 0, 0, 0, 0, 128, 63, 205, 204, 76, 63, 0, 0, 128, 63, 127, 0, 0, 0, 0, 0, 129, 127, 0, 0, 102, 46 ),
"array_index_data": PoolByteArray( 0, 0, 2, 0, 1, 0, 2, 0, 0, 0, 3, 0, 3, 0, 0, 0, 4, 0, 4, 0, 6, 0, 5, 0, 6, 0, 4, 0, 7, 0, 7, 0, 4, 0, 0, 0 ), "array_index_data": PoolByteArray( 0, 0, 2, 0, 1, 0, 2, 0, 0, 0, 3, 0, 3, 0, 0, 0, 4, 0, 4, 0, 6, 0, 5, 0, 6, 0, 4, 0, 7, 0, 7, 0, 4, 0, 0, 0 ),
"blend_shape_data": [ ], "blend_shape_data": [ ],
@ -51,9 +51,11 @@ surfaces/0 = {
[sub_resource type="BoxShape" id=3] [sub_resource type="BoxShape" id=3]
[node name="Keycard" type="StaticBody" groups=[ [node name="Keycard" type="StaticBody" groups=[
"Collectibles",
"Touchables", "Touchables",
]] ]]
script = ExtResource( 1 ) script = ExtResource( 1 )
card_lvl = 1
[node name="KeycardMesh" type="MeshInstance" parent="."] [node name="KeycardMesh" type="MeshInstance" parent="."]
transform = Transform( 0.003, 0, 0, 0, 0.06, 0, 0, 0, 0.1, 0, 0, 0 ) transform = Transform( 0.003, 0, 0, 0, 0.06, 0, 0, 0, 0.1, 0, 0, 0 )

View File

@ -35,14 +35,14 @@ surfaces/0 = {
[sub_resource type="BoxShape" id=3] [sub_resource type="BoxShape" id=3]
[node name="Spatial" type="StaticBody" groups=[ [node name="StraightPipe" type="StaticBody" groups=[
"Pipes", "Pipes",
]] ]]
collision_layer = 7 collision_layer = 7
collision_mask = 7 collision_mask = 7
script = ExtResource( 1 ) script = ExtResource( 1 )
mesh_path = NodePath("Mesh") mesh_path = NodePath("../StraightPipe/Mesh")
color_cast_left = NodePath("ColorCast") color_cast_left = NodePath("../StraightPipe/ColorCast")
[node name="Mesh" type="MeshInstance" parent="."] [node name="Mesh" type="MeshInstance" parent="."]
transform = Transform( 0.2, 0, 0, 0, 0.2, 0, 0, 0, 0.2, 0, 0, 0 ) transform = Transform( 0.2, 0, 0, 0, 0.2, 0, 0, 0, 0.2, 0, 0, 0 )

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,7 @@
extends StaticBody
onready var outline = get_node("Outline") as MeshInstance
func do_interact(var player):
get_tree().quit()

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

77
Level/Tunnel.tscn Normal file
View File

@ -0,0 +1,77 @@
[gd_scene load_steps=6 format=2]
[ext_resource path="res://Characters/Player/Player.tscn" type="PackedScene" id=1]
[sub_resource type="SpatialMaterial" id=2]
params_cull_mode = 1
albedo_color = Color( 0, 0, 0, 1 )
metallic = 0.68
roughness = 0.42
[sub_resource type="ArrayMesh" id=1]
resource_name = "Cylinder"
surfaces/0 = {
"aabb": AABB( -0.866026, -1, -1, 1.73205, 2.00001, 2 ),
"array_data": PoolByteArray( 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 128, 191, 63, 0, 147, 0, 147, 0, 193, 127, 0, 60, 0, 0, 217, 179, 93, 63, 0, 0, 128, 191, 0, 0, 0, 191, 63, 0, 147, 0, 147, 0, 193, 127, 170, 58, 0, 56, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 128, 191, 63, 0, 147, 0, 147, 0, 193, 127, 0, 60, 0, 56, 217, 179, 93, 63, 0, 0, 128, 63, 0, 0, 0, 191, 127, 0, 0, 0, 0, 0, 129, 127, 170, 58, 0, 0, 215, 179, 93, 63, 0, 0, 128, 191, 2, 0, 0, 63, 127, 0, 0, 0, 0, 0, 129, 127, 85, 57, 0, 56, 217, 179, 93, 63, 0, 0, 128, 191, 0, 0, 0, 191, 127, 0, 0, 0, 0, 0, 129, 127, 170, 58, 0, 56, 215, 179, 93, 63, 0, 0, 128, 63, 2, 0, 0, 63, 63, 0, 109, 0, 109, 0, 193, 127, 85, 57, 0, 0, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 128, 63, 63, 0, 109, 0, 109, 0, 193, 127, 0, 56, 0, 56, 215, 179, 93, 63, 0, 0, 128, 191, 2, 0, 0, 63, 63, 0, 109, 0, 109, 0, 193, 127, 85, 57, 0, 56, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 128, 63, 193, 0, 109, 0, 109, 0, 63, 127, 0, 56, 0, 0, 217, 179, 93, 191, 0, 0, 128, 191, 253, 255, 255, 62, 193, 0, 109, 0, 109, 0, 63, 127, 85, 53, 0, 56, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 128, 63, 193, 0, 109, 0, 109, 0, 63, 127, 0, 56, 0, 56, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 128, 191, 0, 127, 0, 0, 126, 0, 0, 127, 0, 52, 20, 56, 217, 179, 93, 191, 0, 0, 128, 63, 253, 255, 255, 62, 0, 127, 0, 0, 127, 0, 0, 127, 101, 41, 245, 58, 215, 179, 93, 63, 0, 0, 128, 63, 2, 0, 0, 63, 0, 127, 0, 0, 127, 0, 0, 127, 83, 55, 245, 58, 217, 179, 93, 191, 0, 0, 128, 63, 253, 255, 255, 62, 129, 0, 0, 0, 0, 0, 127, 127, 85, 53, 0, 0, 217, 179, 93, 191, 0, 0, 128, 191, 253, 255, 255, 190, 129, 0, 0, 0, 0, 0, 127, 127, 85, 49, 0, 56, 217, 179, 93, 191, 0, 0, 128, 191, 253, 255, 255, 62, 129, 0, 0, 0, 0, 0, 127, 127, 85, 53, 0, 56, 217, 179, 93, 191, 0, 0, 128, 63, 253, 255, 255, 190, 193, 0, 147, 0, 147, 0, 63, 127, 85, 49, 0, 0, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 128, 191, 193, 0, 147, 0, 147, 0, 63, 127, 0, 0, 0, 56, 217, 179, 93, 191, 0, 0, 128, 191, 253, 255, 255, 190, 193, 0, 147, 0, 147, 0, 63, 127, 85, 49, 0, 56, 217, 179, 93, 191, 0, 0, 128, 191, 253, 255, 255, 62, 0, 129, 0, 0, 127, 0, 0, 129, 86, 56, 245, 58, 217, 179, 93, 191, 0, 0, 128, 191, 253, 255, 255, 190, 0, 129, 0, 0, 127, 0, 0, 129, 86, 56, 10, 57, 217, 179, 93, 63, 0, 0, 128, 191, 0, 0, 0, 191, 0, 129, 0, 0, 127, 0, 0, 129, 169, 59, 10, 57, 217, 179, 93, 63, 0, 0, 128, 63, 0, 0, 0, 191, 63, 0, 147, 0, 147, 0, 193, 127, 170, 58, 0, 0, 217, 179, 93, 63, 0, 0, 128, 63, 0, 0, 0, 191, 127, 0, 0, 0, 0, 0, 129, 127, 170, 58, 0, 0, 215, 179, 93, 63, 0, 0, 128, 63, 2, 0, 0, 63, 127, 0, 0, 0, 0, 0, 129, 127, 85, 57, 0, 0, 215, 179, 93, 63, 0, 0, 128, 191, 2, 0, 0, 63, 127, 0, 0, 0, 0, 0, 129, 127, 85, 57, 0, 56, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 128, 63, 63, 0, 109, 0, 109, 0, 193, 127, 0, 56, 0, 0, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 128, 63, 193, 0, 109, 0, 109, 0, 63, 127, 0, 56, 0, 0, 217, 179, 93, 191, 0, 0, 128, 63, 253, 255, 255, 62, 193, 0, 109, 0, 109, 0, 63, 127, 85, 53, 0, 0, 217, 179, 93, 191, 0, 0, 128, 191, 253, 255, 255, 62, 193, 0, 109, 0, 109, 0, 63, 127, 85, 53, 0, 56, 217, 179, 93, 63, 0, 0, 128, 63, 0, 0, 0, 191, 0, 127, 0, 0, 127, 0, 0, 127, 83, 55, 10, 57, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 128, 191, 0, 127, 0, 0, 127, 0, 0, 127, 0, 52, 20, 56, 217, 179, 93, 191, 0, 0, 128, 63, 253, 255, 255, 190, 0, 127, 0, 0, 127, 0, 0, 127, 101, 41, 10, 57, 217, 179, 93, 191, 0, 0, 128, 63, 253, 255, 255, 62, 0, 127, 0, 0, 127, 0, 0, 127, 101, 41, 245, 58, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 128, 63, 0, 127, 0, 0, 127, 0, 0, 127, 0, 52, 235, 59, 217, 179, 93, 191, 0, 0, 128, 63, 253, 255, 255, 190, 129, 0, 0, 0, 0, 0, 127, 127, 85, 49, 0, 0, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 128, 191, 193, 0, 147, 0, 147, 0, 63, 127, 0, 0, 0, 0, 217, 179, 93, 191, 0, 0, 128, 191, 253, 255, 255, 190, 0, 129, 0, 0, 127, 0, 0, 129, 86, 56, 10, 57, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 128, 191, 0, 129, 0, 0, 127, 0, 0, 129, 0, 58, 20, 56, 217, 179, 93, 63, 0, 0, 128, 191, 0, 0, 0, 191, 0, 129, 0, 0, 127, 0, 0, 129, 169, 59, 10, 57, 215, 179, 93, 63, 0, 0, 128, 191, 2, 0, 0, 63, 0, 129, 0, 0, 127, 0, 0, 129, 169, 59, 245, 58, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 128, 63, 0, 129, 0, 0, 127, 0, 0, 129, 0, 58, 235, 59, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 128, 63, 0, 129, 0, 0, 127, 0, 0, 129, 0, 58, 235, 59 ),
"array_index_data": PoolByteArray( 0, 0, 2, 0, 1, 0, 3, 0, 5, 0, 4, 0, 6, 0, 8, 0, 7, 0, 9, 0, 11, 0, 10, 0, 12, 0, 14, 0, 13, 0, 15, 0, 17, 0, 16, 0, 18, 0, 20, 0, 19, 0, 21, 0, 23, 0, 22, 0, 0, 0, 1, 0, 24, 0, 25, 0, 27, 0, 26, 0, 6, 0, 7, 0, 28, 0, 29, 0, 31, 0, 30, 0, 14, 0, 12, 0, 32, 0, 33, 0, 35, 0, 34, 0, 13, 0, 14, 0, 36, 0, 15, 0, 16, 0, 37, 0, 18, 0, 19, 0, 38, 0, 39, 0, 41, 0, 40, 0, 41, 0, 43, 0, 42, 0, 44, 0, 23, 0, 21, 0 ),
"blend_shape_data": [ ],
"format": 97559,
"index_count": 60,
"primitive": 4,
"skeleton_aabb": [ ],
"vertex_count": 45
}
[sub_resource type="ConcavePolygonShape" id=3]
data = PoolVector3Array( 0, 1, -1, 0, -1, -1, 0.866, -1, -0.5, 0.866, 1, -0.5, 0.866, -1, -0.5, 0.866, -1, 0.5, 0.866, 1, 0.5, 0.866, -1, 0.5, 0, -1, 1, 0, 1, 1, 0, -1, 1, -0.866, -1, 0.5, 0, 1, -1, 0.866, 1, 0.5, -0.866, 1, 0.5, -0.866, 1, 0.5, -0.866, -1, 0.5, -0.866, -1, -0.5, -0.866, 1, -0.5, -0.866, -1, -0.5, 0, -1, -1, -0.866, -1, 0.5, 0.866, -1, -0.5, -0.866, -1, -0.5, 0, 1, -1, 0.866, -1, -0.5, 0.866, 1, -0.5, 0.866, 1, -0.5, 0.866, -1, 0.5, 0.866, 1, 0.5, 0.866, 1, 0.5, 0, -1, 1, 0, 1, 1, 0, 1, 1, -0.866, -1, 0.5, -0.866, 1, 0.5, 0.866, 1, 0.5, 0, 1, -1, 0.866, 1, -0.5, 0, 1, -1, -0.866, 1, 0.5, -0.866, 1, -0.5, -0.866, 1, 0.5, 0.866, 1, 0.5, 0, 1, 1, -0.866, 1, 0.5, -0.866, -1, -0.5, -0.866, 1, -0.5, -0.866, 1, -0.5, 0, -1, -1, 0, 1, -1, -0.866, -1, -0.5, 0.866, -1, -0.5, 0, -1, -1, 0.866, -1, -0.5, 0, -1, 1, 0.866, -1, 0.5, 0, -1, 1, 0.866, -1, -0.5, -0.866, -1, 0.5 )
[sub_resource type="SphereShape" id=4]
radius = 12.1331
[node name="Tunnel" type="Spatial"]
[node name="Cylinder" type="MeshInstance" parent="."]
transform = Transform( -0.95051, 99.5472, 0, -9.95472, -9.5051, 0, 0, 0, 10, 0, 9, 0 )
layers = 3
material_override = SubResource( 2 )
mesh = SubResource( 1 )
material/0 = null
[node name="StaticBody" type="StaticBody" parent="Cylinder"]
collision_layer = 3
collision_mask = 3
[node name="CollisionShape" type="CollisionShape" parent="Cylinder/StaticBody"]
shape = SubResource( 3 )
[node name="OmniLight" type="OmniLight" parent="."]
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 92, 0, 0 )
layers = 2
light_color = Color( 1, 0.501961, 0.898039, 1 )
omni_range = 343.436
[node name="OmniLight2" type="OmniLight" parent="."]
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -94, 18, 0 )
light_color = Color( 0.501961, 0.894118, 1, 1 )
omni_range = 343.436
[node name="Player" parent="." instance=ExtResource( 1 )]
transform = Transform( -4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, -81, 17, 0 )
IsOutside = false
IsInLabyrinth = true
[node name="LabyrinthPort" type="Area" parent="." groups=[
"LabyrinthEntry",
]]
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 93, 0, 0 )
[node name="CollisionShape" type="CollisionShape" parent="LabyrinthPort"]
shape = SubResource( 4 )
[node name="HousePort" type="Area" parent="." groups=[
"OutsideEntry",
]]
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -101, 18, 0 )
[node name="CollisionShape" type="CollisionShape" parent="HousePort"]
shape = SubResource( 4 )

View File

@ -6,12 +6,11 @@ export(float) var _offset
const SPAWN_TIME_MIN = 5000 # min spawntime in ms const SPAWN_TIME_MIN = 5000 # min spawntime in ms
const SPAWN_TIME_MAX = 8000 # max spawntime in ms const SPAWN_TIME_MAX = 8000 # max spawntime in ms
var _worker var _worker = preload("res://Characters/Worker/Worker.tscn")
var _lastSpawn = 0 # timestamp of last spawned worker var _lastSpawn = 0 # timestamp of last spawned worker
var _path: Path var _path: Path
func _ready(): func _ready():
_worker = load("res://Characters/Worker/Worker.tscn")
assert(null != _worker) assert(null != _worker)
_path = get_node(_nodepath) _path = get_node(_nodepath)

View File

@ -56,26 +56,26 @@ transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 14, 0, 7 )
[node name="Enemies" type="Spatial" parent="."] [node name="Enemies" type="Spatial" parent="."]
[node name="Meldewesen2" parent="Enemies" instance=ExtResource( 2 )] [node name="Meldewesen2" parent="Enemies" instance=ExtResource( 2 )]
transform = Transform( -4.37114e-008, 0, -1, 0, 1, 0, 1, 0, -4.37114e-008, -3.88156, 0, 14.5424 ) transform = Transform( -4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, -3.88156, 0, 14.5424 )
[node name="Meldewesen3" parent="Enemies" instance=ExtResource( 2 )] [node name="Meldewesen3" parent="Enemies" instance=ExtResource( 2 )]
transform = Transform( -1, 0, -8.74228e-008, 0, 1, 0, 8.74228e-008, 0, -1, 58.4396, 0, -200.412 ) transform = Transform( -1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, 58.4396, 0, -200.412 )
[node name="Meldewesen4" parent="Enemies" instance=ExtResource( 2 )] [node name="Meldewesen4" parent="Enemies" instance=ExtResource( 2 )]
transform = Transform( -4.37114e-008, 0, -1, 0, 1, 0, 1, 0, -4.37114e-008, -13.0581, 0, -67.0506 ) transform = Transform( -4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, -13.0581, 0, -67.0506 )
[node name="Collectibles" type="Spatial" parent="."] [node name="Collectibles" type="Spatial" parent="."]
transform = Transform( -4.37114e-008, 0, 1, 0, 1, 0, -1, 0, -4.37114e-008, 15.0831, 1.63203, 13.0809 ) transform = Transform( -4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, 15.0831, 1.63203, 13.0809 )
[node name="Keycard" parent="Collectibles" groups=[ [node name="Keycard" parent="Collectibles" groups=[
"Collectibles", "Collectibles",
] instance=ExtResource( 2 )] ] instance=ExtResource( 2 )]
transform = Transform( -4.37114e-008, 0, 1, 0, 1, 0, -1, 0, -4.37114e-008, 203.861, -0.63203, 110.591 ) transform = Transform( -4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, 203.861, -0.63203, 110.591 )
[node name="Key" parent="Collectibles" groups=[ [node name="Key" parent="Collectibles" groups=[
"Collectibles", "Collectibles",
] instance=ExtResource( 3 )] ] instance=ExtResource( 3 )]
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -75.0183, 0, -2.86102e-006 ) transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -75.0183, 0, -2.86102e-06 )
[node name="Area" type="Area" parent="Collectibles/Key" groups=[ [node name="Area" type="Area" parent="Collectibles/Key" groups=[
"Forbidden", "Forbidden",
@ -121,7 +121,7 @@ transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0.127018, 0, 0.00287628 )
curve = SubResource( 2 ) curve = SubResource( 2 )
[node name="PathFollow" type="PathFollow" parent="WorkerSpawner/Path"] [node name="PathFollow" type="PathFollow" parent="WorkerSpawner/Path"]
transform = Transform( 0.996943, 0.00214803, 0.0780964, -0.00218668, 0.999998, 0.000409653, -0.0780961, -0.000579182, 0.996945, -15.7672, 0.284373, -190.888 ) transform = Transform( -0.00982942, 0.0019797, 0.999949, 0.00229539, 0.999996, -0.00195724, -0.999949, 0.00227601, -0.00983316, -15.7672, 0.284373, -190.888 )
offset = 380.29 offset = 380.29
[node name="Worker" parent="WorkerSpawner/Path/PathFollow" instance=ExtResource( 5 )] [node name="Worker" parent="WorkerSpawner/Path/PathFollow" instance=ExtResource( 5 )]
@ -129,13 +129,13 @@ offset = 380.29
[node name="Touchables" type="Spatial" parent="."] [node name="Touchables" type="Spatial" parent="."]
[node name="Lever" parent="Touchables" instance=ExtResource( 6 )] [node name="Lever" parent="Touchables" instance=ExtResource( 6 )]
transform = Transform( 1.19249e-008, 0, -1, 0, 1, 0, 1, 0, 1.19249e-008, 5.94476, 2, 11.731 ) transform = Transform( 1.19249e-08, 0, -1, 0, 1, 0, 1, 0, 1.19249e-08, 5.94476, 2, 11.731 )
[node name="NavigationMeshInstance" type="NavigationMeshInstance" parent="."] [node name="NavigationMeshInstance" type="NavigationMeshInstance" parent="."]
navmesh = SubResource( 3 ) navmesh = SubResource( 3 )
[node name="PlayerHouse" parent="NavigationMeshInstance" instance=ExtResource( 7 )] [node name="PlayerHouse" parent="NavigationMeshInstance" instance=ExtResource( 7 )]
transform = Transform( -4.37114e-008, 0, 1, 0, 1, 0, -1, 0, -4.37114e-008, 13, 0, 14 ) transform = Transform( -4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, 13, 0, 14 )
[node name="MeldewesenHouse" parent="NavigationMeshInstance" instance=ExtResource( 7 )] [node name="MeldewesenHouse" parent="NavigationMeshInstance" instance=ExtResource( 7 )]
transform = Transform( 0.8, 0, 0, 0, 1, 0, 0, 0, 1, 14.9197, 0, 89.983 ) transform = Transform( 0.8, 0, 0, 0, 1, 0, 0, 0, 1, 14.9197, 0, 89.983 )
@ -143,46 +143,46 @@ transform = Transform( 0.8, 0, 0, 0, 1, 0, 0, 0, 1, 14.9197, 0, 89.983 )
[node name="BuildingBlocks" type="Spatial" parent="NavigationMeshInstance"] [node name="BuildingBlocks" type="Spatial" parent="NavigationMeshInstance"]
[node name="BuildingBlock" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 8 )] [node name="BuildingBlock" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 8 )]
transform = Transform( -4.37114e-008, 0, 1, 0, 1, 0, -1, 0, -4.37114e-008, -13, 0, -13 ) transform = Transform( -4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, -13, 0, -13 )
[node name="BuildingBlock2" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 8 )] [node name="BuildingBlock2" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 8 )]
transform = Transform( -4.37114e-008, 0, 1, 0, 1, 0, -1, 0, -4.37114e-008, 13, 0, -13 ) transform = Transform( -4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, 13, 0, -13 )
[node name="BuildingBlock11" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 8 )] [node name="BuildingBlock11" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 8 )]
transform = Transform( -4.37114e-008, 0, 1, 0, 1, 0, -1, 0, -4.37114e-008, 13, 0, 41 ) transform = Transform( -4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, 13, 0, 41 )
[node name="BuildingBlock12" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 8 )] [node name="BuildingBlock12" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 8 )]
transform = Transform( -4.37114e-008, 0, 1, 0, 1, 0, -1, 0, -4.37114e-008, -13, 0, 14 ) transform = Transform( -4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, -13, 0, 14 )
[node name="BuildingBlock13" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 8 )] [node name="BuildingBlock13" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 8 )]
transform = Transform( -4.37114e-008, 0, 1, 0, 1, 0, -1, 0, -4.37114e-008, -13, 0, 41 ) transform = Transform( -4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, -13, 0, 41 )
[node name="BuildingBlock14" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 8 )] [node name="BuildingBlock14" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 8 )]
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 34, 0, 47 ) transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 34, 0, 47 )
[node name="BuildingBlock15" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 8 )] [node name="BuildingBlock15" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 8 )]
transform = Transform( -4.37114e-008, 0, -1, 0, 1, 0, 1, 0, -4.37114e-008, 41, 0, 95 ) transform = Transform( -4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, 41, 0, 95 )
[node name="BuildingBlock21" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 8 )] [node name="BuildingBlock21" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 8 )]
transform = Transform( -4.37114e-008, 0, -1, 0, 1, 0, 1, 0, -4.37114e-008, 41, 0, 68 ) transform = Transform( -4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, 41, 0, 68 )
[node name="BuildingBlock16" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 8 )] [node name="BuildingBlock16" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 8 )]
transform = Transform( -4.37114e-008, 0, -1, 0, 1, 0, 1, 0, -4.37114e-008, -13, 0, 68 ) transform = Transform( -4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, -13, 0, 68 )
[node name="BuildingBlock20" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 8 )] [node name="BuildingBlock20" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 8 )]
transform = Transform( -4.37114e-008, 0, -1, 0, 1, 0, 1, 0, -4.37114e-008, -13, 0, 95 ) transform = Transform( -4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, -13, 0, 95 )
[node name="BuildingBlock17" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 8 )] [node name="BuildingBlock17" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 8 )]
transform = Transform( -1, 0, 8.74228e-008, 0, 1, 0, -8.74228e-008, 0, -1, 8, 0, 116 ) transform = Transform( -1, 0, 8.74228e-08, 0, 1, 0, -8.74228e-08, 0, -1, 8, 0, 116 )
[node name="BuildingBlock18" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 8 )] [node name="BuildingBlock18" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 8 )]
transform = Transform( -1, 0, 8.74228e-008, 0, 1, 0, -8.74228e-008, 0, -1, 35, 0, 116 ) transform = Transform( -1, 0, 8.74228e-08, 0, 1, 0, -8.74228e-08, 0, -1, 35, 0, 116 )
[node name="BuildingBlock3" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 8 )] [node name="BuildingBlock3" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 8 )]
transform = Transform( -4.37114e-008, 0, 1, 0, 1, 0, -1, 0, -4.37114e-008, 13, 0, -40 ) transform = Transform( -4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, 13, 0, -40 )
[node name="BuildingBlock4" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 8 )] [node name="BuildingBlock4" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 8 )]
transform = Transform( -4.37114e-008, 0, 1, 0, 1, 0, -1, 0, -4.37114e-008, -13, 0, -40 ) transform = Transform( -4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, -13, 0, -40 )
[node name="BuildingBlock5" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 8 )] [node name="BuildingBlock5" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 8 )]
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -34, 0, -88 ) transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -34, 0, -88 )
@ -191,10 +191,10 @@ transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -34, 0, -88 )
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -34, 0, -46 ) transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -34, 0, -46 )
[node name="BuildingBlock9" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 8 )] [node name="BuildingBlock9" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 8 )]
transform = Transform( -4.37114e-008, 0, 1, 0, 1, 0, -1, 0, -4.37114e-008, -13, 0, -94 ) transform = Transform( -4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, -13, 0, -94 )
[node name="BuildingBlock24" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 8 )] [node name="BuildingBlock24" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 8 )]
transform = Transform( -4.37114e-008, 0, 1, 0, 1, 0, -1, 0, -4.37114e-008, -13, 0, -121 ) transform = Transform( -4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, -13, 0, -121 )
[node name="BuildingBlock25" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 8 )] [node name="BuildingBlock25" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 8 )]
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 8, 0, -127 ) transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 8, 0, -127 )
@ -221,10 +221,10 @@ transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 100, 0, -211 )
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 73, 0, -211 ) transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 73, 0, -211 )
[node name="BuildingBlock53" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 8 )] [node name="BuildingBlock53" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 8 )]
transform = Transform( -4.37114e-008, 0, 1, 0, 1, 0, -1, 0, -4.37114e-008, 79, 0, -201.078 ) transform = Transform( -4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, 79, 0, -201.078 )
[node name="BuildingBlock54" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 8 )] [node name="BuildingBlock54" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 8 )]
transform = Transform( -4.37114e-008, 0, 1, 0, 0.6, 0, -1, 0, -4.37114e-008, 79, 4.83048, -181.541 ) transform = Transform( -4.37114e-08, 0, 1, 0, 0.6, 0, -1, 0, -4.37114e-08, 79, 4.83048, -181.541 )
[node name="BuildingBlock43" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 8 )] [node name="BuildingBlock43" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 8 )]
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 46, 0, -211 ) transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 46, 0, -211 )
@ -239,19 +239,19 @@ transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -8, 0, -211 )
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -35, 0, -211 ) transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -35, 0, -211 )
[node name="BuildingBlock47" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 8 )] [node name="BuildingBlock47" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 8 )]
transform = Transform( -4.37114e-008, 0, -1, 0, 1, 0, 1, 0, -4.37114e-008, -56, 0, -217 ) transform = Transform( -4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, -56, 0, -217 )
[node name="BuildingBlock48" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 8 )] [node name="BuildingBlock48" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 8 )]
transform = Transform( -4.37114e-008, 0, -1, 0, 1, 0, 1, 0, -4.37114e-008, -71, 0, -217 ) transform = Transform( -4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, -71, 0, -217 )
[node name="BuildingBlock50" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 8 )] [node name="BuildingBlock50" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 8 )]
transform = Transform( -4.37114e-008, 0, -1, 0, 1, 0, 1, 0, -4.37114e-008, -71, 0, -244 ) transform = Transform( -4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, -71, 0, -244 )
[node name="BuildingBlock51" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 8 )] [node name="BuildingBlock51" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 8 )]
transform = Transform( -1, 0, 8.74228e-008, 0, 1, 0, -8.74228e-008, 0, -1, -92, 0, -250 ) transform = Transform( -1, 0, 8.74228e-08, 0, 1, 0, -8.74228e-08, 0, -1, -92, 0, -250 )
[node name="BuildingBlock52" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 8 )] [node name="BuildingBlock52" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 8 )]
transform = Transform( 1.31134e-007, 0, 1, 0, 1, 0, -1, 0, 1.31134e-007, -113, 0, -256 ) transform = Transform( 1.31134e-07, 0, 1, 0, 1, 0, -1, 0, 1.31134e-07, -113, 0, -256 )
[node name="BuildingBlock32" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 8 )] [node name="BuildingBlock32" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 8 )]
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 8, 0, -169 ) transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 8, 0, -169 )
@ -263,7 +263,7 @@ transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -19, 0, -169 )
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -46, 0, -169 ) transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -46, 0, -169 )
[node name="BuildingBlock35" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 8 )] [node name="BuildingBlock35" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 8 )]
transform = Transform( -4.37114e-008, 0, 1, 0, 1, 0, -1, 0, -4.37114e-008, -67, 0, -163 ) transform = Transform( -4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, -67, 0, -163 )
[node name="BuildingBlock36" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 8 )] [node name="BuildingBlock36" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 8 )]
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -76, 0, -142 ) transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -76, 0, -142 )
@ -272,24 +272,24 @@ transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -76, 0, -142 )
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -103, 0, -142 ) transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -103, 0, -142 )
[node name="BuildingBlock27" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 8 )] [node name="BuildingBlock27" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 8 )]
transform = Transform( -4.37114e-008, 0, 1, 0, 1, 0, -1, 0, -4.37114e-008, 41, 0, -148 ) transform = Transform( -4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, 41, 0, -148 )
[node name="BuildingBlock28" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 8 )] [node name="BuildingBlock28" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 8 )]
transform = Transform( -4.37114e-008, 0, 1, 0, 1, 0, -1, 0, -4.37114e-008, 79, 0, -109 ) transform = Transform( -4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, 79, 0, -109 )
[node name="BuildingBlock29" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 8 )] [node name="BuildingBlock29" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 8 )]
transform = Transform( -4.37114e-008, 0, 1, 0, 1, 0, -1, 0, -4.37114e-008, 79, 0, -136 ) transform = Transform( -4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, 79, 0, -136 )
[node name="BuildingBlock30" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 8 )] [node name="BuildingBlock30" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 8 )]
transform = Transform( -4.37114e-008, 0, 1, 0, 1, 0, -1, 0, -4.37114e-008, 79, 0, -163 ) transform = Transform( -4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, 79, 0, -163 )
[node name="BuildingBlock39" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 8 )] [node name="BuildingBlock39" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 8 )]
transform = Transform( -4.37114e-008, 0, 1, 0, 1, 0, -1, 0, -4.37114e-008, 133, 0, -190 ) transform = Transform( -4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, 133, 0, -190 )
[node name="MeldewesenHome" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 9 )] [node name="MeldewesenHome" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 9 )]
[node name="BuildingBlock6" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 8 )] [node name="BuildingBlock6" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 8 )]
transform = Transform( -4.37114e-008, 0, 1, 0, 1, 0, -1, 0, -4.37114e-008, 13, 0, -67 ) transform = Transform( -4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, 13, 0, -67 )
[node name="BuildingBlock7" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 8 )] [node name="BuildingBlock7" parent="NavigationMeshInstance/BuildingBlocks" instance=ExtResource( 8 )]
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 19, 0, -88 ) transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 19, 0, -88 )
@ -320,7 +320,7 @@ collision_mask = 7
shape = SubResource( 5 ) shape = SubResource( 5 )
[node name="DoorWall" parent="NavigationMeshInstance/Ground" instance=ExtResource( 11 )] [node name="DoorWall" parent="NavigationMeshInstance/Ground" instance=ExtResource( 11 )]
transform = Transform( -4.37114e-008, 0, 1, 0, 1, 0, -1, 0, -4.37114e-008, 156.062, 0, -76.2607 ) transform = Transform( -4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, 156.062, 0, -76.2607 )
[node name="Environment" type="Spatial" parent="."] [node name="Environment" type="Spatial" parent="."]
@ -328,7 +328,7 @@ transform = Transform( -4.37114e-008, 0, 1, 0, 1, 0, -1, 0, -4.37114e-008, 156.0
environment = SubResource( 7 ) environment = SubResource( 7 )
[node name="DirectionalLight" type="DirectionalLight" parent="Environment"] [node name="DirectionalLight" type="DirectionalLight" parent="Environment"]
transform = Transform( 0.642788, -0.262003, -0.719846, -8.21505e-008, -0.939693, 0.34202, -0.766044, -0.219847, -0.604023, 0, 7, 0 ) transform = Transform( 0.642788, -0.262003, -0.719846, -8.21505e-08, -0.939693, 0.34202, -0.766044, -0.219847, -0.604023, 0, 7, 0 )
layers = 3 layers = 3
shadow_enabled = true shadow_enabled = true

Binary file not shown.

Binary file not shown.

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.9 KiB

Binary file not shown.

Binary file not shown.

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,69 @@
<?xml version="1.0" encoding="utf-8"?>
<COLLADA xmlns="http://www.collada.org/2005/11/COLLADASchema" version="1.4.1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<asset>
<contributor>
<author>Blender User</author>
<authoring_tool>Blender 2.80.75</authoring_tool>
</contributor>
<created>2020-01-28T16:49:41</created>
<modified>2020-01-28T16:49:41</modified>
<unit name="meter" meter="1"/>
<up_axis>Z_UP</up_axis>
</asset>
<library_images/>
<library_geometries>
<geometry id="Cylinder-mesh" name="Cylinder">
<mesh>
<source id="Cylinder-mesh-positions">
<float_array id="Cylinder-mesh-positions-array" count="36">0 1 -1 0 1 1 0.8660255 0.5 -1 0.8660255 0.5 1 0.8660254 -0.5000001 -1 0.8660254 -0.5000001 1 0 -1 -1 0 -1 1 -0.8660255 -0.4999999 -1 -0.8660255 -0.4999999 1 -0.8660255 0.4999999 -1 -0.8660255 0.4999999 1</float_array>
<technique_common>
<accessor source="#Cylinder-mesh-positions-array" count="12" stride="3">
<param name="X" type="float"/>
<param name="Y" type="float"/>
<param name="Z" type="float"/>
</accessor>
</technique_common>
</source>
<source id="Cylinder-mesh-normals">
<float_array id="Cylinder-mesh-normals-array" count="48">0.5 0.8660255 0 1 0 0 0.5 -0.8660255 0 -0.5000001 -0.8660253 0 0 0 1 -1 0 0 -0.5000001 0.8660255 0 0 0 -1 1 -1.19209e-7 0 0.5 -0.8660255 0 -0.5000001 -0.8660254 0 0 0 1 1.37651e-7 0 1 0 0 1 1.37651e-7 0 -1 1.37651e-7 0 -1</float_array>
<technique_common>
<accessor source="#Cylinder-mesh-normals-array" count="16" stride="3">
<param name="X" type="float"/>
<param name="Y" type="float"/>
<param name="Z" type="float"/>
</accessor>
</technique_common>
</source>
<source id="Cylinder-mesh-map-0">
<float_array id="Cylinder-mesh-map-0-array" count="120">1 1 0.8333333 0.5 1 0.5 0.8333333 1 0.6666666 0.5 0.8333333 0.5 0.6666666 1 0.5 0.5 0.6666666 0.5 0.5 1 0.3333333 0.5 0.5 0.5 0.25 0.49 0.04215389 0.13 0.4578461 0.1299999 0.3333333 1 0.1666666 0.5 0.3333333 0.5 0.1666666 1 0 0.5 0.1666666 0.5 0.5421539 0.13 0.5421539 0.37 0.9578461 0.37 1 1 0.8333333 1 0.8333333 0.5 0.8333333 1 0.6666666 1 0.6666666 0.5 0.6666666 1 0.5 1 0.5 0.5 0.5 1 0.3333333 1 0.3333333 0.5 0.4578461 0.1299999 0.4578461 0.37 0.25 0.49 0.25 0.49 0.04215389 0.37 0.04215389 0.13 0.04215389 0.13 0.25 0.00999999 0.4578461 0.1299999 0.3333333 1 0.1666666 1 0.1666666 0.5 0.1666666 1 0 1 0 0.5 0.5421539 0.37 0.75 0.49 0.9578461 0.37 0.9578461 0.37 0.9578461 0.1299999 0.75 0.00999999 0.75 0.00999999 0.5421539 0.13 0.9578461 0.37</float_array>
<technique_common>
<accessor source="#Cylinder-mesh-map-0-array" count="60" stride="2">
<param name="S" type="float"/>
<param name="T" type="float"/>
</accessor>
</technique_common>
</source>
<vertices id="Cylinder-mesh-vertices">
<input semantic="POSITION" source="#Cylinder-mesh-positions"/>
</vertices>
<triangles count="20">
<input semantic="VERTEX" source="#Cylinder-mesh-vertices" offset="0"/>
<input semantic="NORMAL" source="#Cylinder-mesh-normals" offset="1"/>
<input semantic="TEXCOORD" source="#Cylinder-mesh-map-0" offset="2" set="0"/>
<p>1 0 0 2 0 1 0 0 2 3 1 3 4 1 4 2 1 5 5 2 6 6 2 7 4 2 8 7 3 9 8 3 10 6 3 11 1 4 12 9 4 13 5 4 14 9 5 15 10 5 16 8 5 17 11 6 18 0 6 19 10 6 20 8 7 21 10 7 22 2 7 23 1 0 24 3 0 25 2 0 26 3 8 27 5 8 28 4 8 29 5 9 30 7 9 31 6 9 32 7 10 33 9 10 34 8 10 35 5 11 36 3 11 37 1 11 38 1 12 39 11 12 40 9 12 41 9 13 42 7 13 43 5 13 44 9 5 45 11 5 46 10 5 47 11 6 48 1 6 49 0 6 50 10 14 51 0 14 52 2 14 53 2 15 54 4 15 55 6 15 56 6 7 57 8 7 58 2 7 59</p>
</triangles>
</mesh>
</geometry>
</library_geometries>
<library_visual_scenes>
<visual_scene id="Scene" name="Scene">
<node id="Cylinder" name="Cylinder" type="NODE">
<matrix sid="transform">-0.9505103 0 199.0945 0 0 10 0 0 -9.954723 0 -19.01021 9 0 0 0 1</matrix>
<instance_geometry url="#Cylinder-mesh" name="Cylinder"/>
</node>
</visual_scene>
</library_visual_scenes>
<scene>
<instance_visual_scene url="#Scene"/>
</scene>
</COLLADA>

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,101 @@
<?xml version="1.0" encoding="utf-8"?>
<COLLADA xmlns="http://www.collada.org/2005/11/COLLADASchema" version="1.4.1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<asset>
<contributor>
<author>Blender User</author>
<authoring_tool>Blender 2.80.75</authoring_tool>
</contributor>
<created>2020-01-28T13:19:33</created>
<modified>2020-01-28T13:19:33</modified>
<unit name="meter" meter="1"/>
<up_axis>Z_UP</up_axis>
</asset>
<library_effects>
<effect id="Material-effect">
<profile_COMMON>
<technique sid="common">
<lambert>
<emission>
<color sid="emission">0 0 0 1</color>
</emission>
<diffuse>
<color sid="diffuse">0.8 0.8 0.8 1</color>
</diffuse>
<index_of_refraction>
<float sid="ior">1.45</float>
</index_of_refraction>
</lambert>
</technique>
</profile_COMMON>
</effect>
</library_effects>
<library_images/>
<library_materials>
<material id="Material-material" name="Material">
<instance_effect url="#Material-effect"/>
</material>
</library_materials>
<library_geometries>
<geometry id="Cube-mesh" name="Cube">
<mesh>
<source id="Cube-mesh-positions">
<float_array id="Cube-mesh-positions-array" count="72">0.8 0.8 0.8 0.5842491 0.8 -0.8 0.8 -0.8 0.8 0.5842491 -0.8 -0.8 -0.8 0.8 0.8 -0.8 0.8 -0.8 -0.8 -0.8 0.8 -0.8 -0.8 -0.8 1 1 1 1 1 -1 1 -1 1 1 -1 -1 -1 1 1 -1 1 -1 -1 -1 1 -1 -1 -1 1 -0.01999998 -0.7987807 0.8 -0.3811202 -0.7987807 1 0.01999998 -0.7987807 0.8 0.3811202 -0.7987807 1 -0.01999998 -0.7387807 0.8 -0.3811202 -0.6931005 1 0.01999998 -0.7387807 0.8 0.3811202 -0.6931005</float_array>
<technique_common>
<accessor source="#Cube-mesh-positions-array" count="24" stride="3">
<param name="X" type="float"/>
<param name="Y" type="float"/>
<param name="Z" type="float"/>
</accessor>
</technique_common>
</source>
<source id="Cube-mesh-normals">
<float_array id="Cube-mesh-normals-array" count="63">0 0 -1 0 1 0 1 0 0 0 0 1 -0.8890054 0.4578968 0 0 -1 0 -1 0 0 -0.8747969 -0.48449 0 -0.2226615 0 -0.9748958 -1 0 0 -0.8747964 0.4844909 0 -0.005651772 0 0.9999841 -0.005651056 0 0.999984 -0.8747964 -0.4844909 0 -7.45058e-6 0 1 -0.2226673 0 -0.9748945 -0.8890054 -0.4578968 0 -0.8947097 0.4300453 0.1206464 -0.8947097 -0.4300454 0.1206464 -1 0 0 -0.8747969 0.48449 0</float_array>
<technique_common>
<accessor source="#Cube-mesh-normals-array" count="21" stride="3">
<param name="X" type="float"/>
<param name="Y" type="float"/>
<param name="Z" type="float"/>
</accessor>
</technique_common>
</source>
<source id="Cube-mesh-map-0">
<float_array id="Cube-mesh-map-0-array" count="264">0.375 0.25 0.625 0 0.375 0 0.375 0.25 0.625 0.5 0.625 0.25 0.375 0.75 0.625 0.5 0.375 0.5 0.375 1 0.625 0.75 0.375 0.75 0.125 0.75 0.1345655 0.628125 0.1251905 0.628125 0.625 0.75 0.875 0.5 0.625 0.5 0.625 0 0.375 0.25 0.375 0 0.625 0.25 0.375 0.5 0.375 0.25 0.625 0.5 0.375 0.75 0.375 0.5 0.625 0.75 0.375 1 0.375 0.75 0.125 0.5 0.1501524 0.6225 0.125 0.75 0.875 0.5 0.625 0.75 0.625 0.5 0.375 0.3175873 0.6250001 0.3425873 0.625 0.3175873 0.375 0.75 0.1576524 0.6275001 0.1576524 0.6225001 0.2175872 0.75 0.1925873 0.5 0.1925873 0.75 0.8074127 0.75 0.7824127 0.5 0.7824127 0.75 0.1345655 0.621875 0.375 0.75 0.375 0.5 0.375 0.9324126 0.625 0.9074127 0.375 0.9074127 0.375 0.25 0.625 0.25 0.625 0 0.375 0.25 0.375 0.5 0.625 0.5 0.375 0.75 0.625 0.75 0.625 0.5 0.375 1 0.625 1 0.625 0.75 0.1251905 0.6218751 0.125 0.5 0.1251905 0.628125 0.125 0.5 0.125 0.75 0.1251905 0.628125 0.625 0.75 0.875 0.75 0.875 0.5 0.625 0 0.625 0.25 0.375 0.25 0.625 0.25 0.625 0.5 0.375 0.5 0.625 0.5 0.625 0.75 0.375 0.75 0.625 0.75 0.625 1 0.375 1 0.125 0.5 0.1576524 0.6225001 0.1501524 0.6225 0.1501524 0.6225 0.1501524 0.6275001 0.125 0.75 0.875 0.5 0.875 0.75 0.625 0.75 0.375 0.3175873 0.375 0.3425873 0.6250001 0.3425873 0.375 0.75 0.125 0.75 0.1576524 0.6275001 0.125 0.75 0.1501524 0.6275001 0.1576524 0.6275001 0.125 0.5 0.375 0.5 0.1576524 0.6225001 0.375 0.5 0.375 0.75 0.1576524 0.6225001 0.2175872 0.75 0.2175872 0.5 0.1925873 0.5 0.8074127 0.75 0.8074127 0.5 0.7824127 0.5 0.125 0.5 0.1251905 0.6218751 0.1345655 0.621875 0.1345655 0.628125 0.125 0.75 0.375 0.75 0.375 0.5 0.125 0.5 0.1345655 0.621875 0.1345655 0.621875 0.1345655 0.628125 0.375 0.75 0.375 0.9324126 0.625 0.9324128 0.625 0.9074127</float_array>
<technique_common>
<accessor source="#Cube-mesh-map-0-array" count="132" stride="2">
<param name="S" type="float"/>
<param name="T" type="float"/>
</accessor>
</technique_common>
</source>
<vertices id="Cube-mesh-vertices">
<input semantic="POSITION" source="#Cube-mesh-positions"/>
</vertices>
<triangles material="Material-material" count="44">
<input semantic="VERTEX" source="#Cube-mesh-vertices" offset="0"/>
<input semantic="NORMAL" source="#Cube-mesh-normals" offset="1"/>
<input semantic="TEXCOORD" source="#Cube-mesh-map-0" offset="2" set="0"/>
<p>2 0 0 4 0 1 0 0 2 3 1 3 6 1 4 2 1 5 5 2 6 6 2 7 7 2 8 7 3 9 1 3 10 5 3 11 3 4 12 21 4 13 17 4 14 1 5 15 4 5 16 5 5 17 12 3 18 10 3 19 8 3 20 10 5 21 15 5 22 11 5 23 14 6 24 13 6 25 15 6 26 9 0 27 15 0 28 13 0 29 9 2 30 18 2 31 11 2 32 12 1 33 9 1 34 13 1 35 19 7 36 22 7 37 23 7 38 10 2 39 20 2 40 22 2 41 16 3 42 19 3 43 17 3 44 21 8 45 22 8 46 20 8 47 23 9 48 2 9 49 0 9 50 17 10 51 20 10 52 16 10 53 2 0 54 6 0 55 4 0 56 3 1 57 7 1 58 6 1 59 5 2 60 4 2 61 6 2 62 7 3 63 3 3 64 1 3 65 19 11 66 1 11 67 17 11 68 1 12 69 3 12 70 17 12 71 1 5 72 0 5 73 4 5 74 12 3 75 14 3 76 10 3 77 10 5 78 14 5 79 15 5 80 14 6 81 12 6 82 13 6 83 9 0 84 11 0 85 15 0 86 9 2 87 22 2 88 18 2 89 18 2 90 16 2 91 11 2 92 12 1 93 8 1 94 9 1 95 19 13 96 18 13 97 22 13 98 10 2 99 11 2 100 20 2 101 11 2 102 16 2 103 20 2 104 9 2 105 8 2 106 22 2 107 8 2 108 10 2 109 22 2 110 16 14 111 18 14 112 19 14 113 21 15 114 23 15 115 22 15 116 1 16 117 19 16 118 23 16 119 21 17 120 3 17 121 2 17 122 0 18 123 1 18 124 23 18 125 23 19 126 21 19 127 2 19 128 17 20 129 21 20 130 20 20 131</p>
</triangles>
</mesh>
</geometry>
</library_geometries>
<library_visual_scenes>
<visual_scene id="Scene" name="Scene">
<node id="Cube" name="Cube" type="NODE">
<matrix sid="transform">50 0 0 0 0 50 0 0 0 0 50 50 0 0 0 1</matrix>
<instance_geometry url="#Cube-mesh" name="Cube">
<bind_material>
<technique_common>
<instance_material symbol="Material-material" target="#Material-material">
<bind_vertex_input semantic="UVMap" input_semantic="TEXCOORD" input_set="0"/>
</instance_material>
</technique_common>
</bind_material>
</instance_geometry>
</node>
</visual_scene>
</library_visual_scenes>
<scene>
<instance_visual_scene url="#Scene"/>
</scene>
</COLLADA>

File diff suppressed because it is too large Load Diff

Binary file not shown.

After

Width:  |  Height:  |  Size: 345 B

View File

@ -2,15 +2,15 @@
importer="texture" importer="texture"
type="StreamTexture" type="StreamTexture"
path="res://.import/keycard.png-1b5932f2383ba2cd4c771ca169fe169c.stex" path="res://.import/pillLevel_danger.png-3f16593e6f8ad54ee32d61800bfb0c9f.stex"
metadata={ metadata={
"vram_texture": false "vram_texture": false
} }
[deps] [deps]
source_file="res://Resources/Models/keycard/keycard.png" source_file="res://Resources/Textures/pillLevel_danger.png"
dest_files=[ "res://.import/keycard.png-1b5932f2383ba2cd4c771ca169fe169c.stex" ] dest_files=[ "res://.import/pillLevel_danger.png-3f16593e6f8ad54ee32d61800bfb0c9f.stex" ]
[params] [params]

Binary file not shown.

Before

Width:  |  Height:  |  Size: 378 B

After

Width:  |  Height:  |  Size: 360 B

View File

@ -58,16 +58,24 @@ func _light_rotation():
#set light color depending on daytime #set light color depending on daytime
func _sky_light(): func _sky_light():
var new_light_energy = 0.0
if _degree <= SUNRISE_DEGREE: if _degree <= SUNRISE_DEGREE:
#_worldEnvironment.environment.background_sky.sky_curve = 1 #_worldEnvironment.environment.background_sky.sky_curve = 1
_setSkyColor = SUNRISE _setSkyColor = SUNRISE
elif _degree > SUNRISE_DEGREE and _degree < RISE_INTERPOL: #interpolate colors from sunrise sky to daytime sky elif _degree > SUNRISE_DEGREE and _degree < RISE_INTERPOL: #interpolate colors from sunrise sky to daytime sky
_setSkyColor = SUNRISE.linear_interpolate(STANDARD_SKY_TOP, ((_degree-SUNRISE_DEGREE)/(RISE_INTERPOL-SUNRISE_DEGREE))) _setSkyColor = SUNRISE.linear_interpolate(STANDARD_SKY_TOP, ((_degree-SUNRISE_DEGREE)/(RISE_INTERPOL-SUNRISE_DEGREE)))
new_light_energy = inverse_lerp(SUNRISE_DEGREE, RISE_INTERPOL, _degree)
elif _degree >= RISE_INTERPOL and _degree <= SET_INTERPOL: elif _degree >= RISE_INTERPOL and _degree <= SET_INTERPOL:
#_worldEnvironment.environment.background_sky.sky_curve = 0.09 #_worldEnvironment.environment.background_sky.sky_curve = 0.09
_setSkyColor = STANDARD_SKY_TOP _setSkyColor = STANDARD_SKY_TOP
new_light_energy = 1.0
elif _degree > SET_INTERPOL and _degree < SUNSET_DEGREE: #interpolate colors from daytime sky to sunset sky elif _degree > SET_INTERPOL and _degree < SUNSET_DEGREE: #interpolate colors from daytime sky to sunset sky
_setSkyColor = STANDARD_SKY_TOP.linear_interpolate(SUNSET, ((_degree-SET_INTERPOL)/(SUNSET_DEGREE-SET_INTERPOL))) _setSkyColor = STANDARD_SKY_TOP.linear_interpolate(SUNSET, ((_degree-SET_INTERPOL)/(SUNSET_DEGREE-SET_INTERPOL)))
new_light_energy = 1.0 - inverse_lerp(SET_INTERPOL, SUNSET_DEGREE, _degree)
elif _degree >= SUNSET_DEGREE: elif _degree >= SUNSET_DEGREE:
_setSkyColor = SUNSET _setSkyColor = SUNSET
_worldEnvironment.environment.background_sky.sky_horizon_color = _setSkyColor
_worldEnvironment.environment.background_sky.sky_horizon_color = _setSkyColor
_light.light_energy = new_light_energy
_worldEnvironment.environment.ambient_light_energy = 0.2 + 0.3 * new_light_energy

View File

@ -29,6 +29,16 @@ _global_script_classes=[ {
"language": "GDScript", "language": "GDScript",
"path": "res://Util/gs-logger-3.1-R3/gs_logger/layouts/html_layout.gd" "path": "res://Util/gs-logger-3.1-R3/gs_logger/layouts/html_layout.gd"
}, { }, {
"base": "StaticBody",
"class": "Key",
"language": "GDScript",
"path": "res://Level/Interactables/Key/Key.gd"
}, {
"base": "StaticBody",
"class": "Keycard",
"language": "GDScript",
"path": "res://Level/Interactables/Keycard/Keycard.gd"
}, {
"base": "Reference", "base": "Reference",
"class": "Layout", "class": "Layout",
"language": "GDScript", "language": "GDScript",
@ -54,6 +64,8 @@ _global_script_class_icons={
"ConsoleAppender": "", "ConsoleAppender": "",
"FileAppender": "", "FileAppender": "",
"HtmlLayout": "", "HtmlLayout": "",
"Key": "",
"Keycard": "",
"Layout": "", "Layout": "",
"Message": "", "Message": "",
"NPC": "", "NPC": "",
@ -63,7 +75,7 @@ _global_script_class_icons={
[application] [application]
config/name="retrace" config/name="retrace"
run/main_scene="res://Level/World.tscn" run/main_scene="res://Level/OutsideWorld.tscn"
config/icon="res://icon.png" config/icon="res://icon.png"
[autoload] [autoload]
@ -72,6 +84,7 @@ Logger="*res://Util/gs-logger-3.1-R3/gs_logger/logger.gd"
Pills="*res://Global/Pills.gd" Pills="*res://Global/Pills.gd"
Daytime="*res://Global/Daytime.gd" Daytime="*res://Global/Daytime.gd"
PillAudioHandler="*res://Global/PillAudioHandler.tscn" PillAudioHandler="*res://Global/PillAudioHandler.tscn"
Inventory="*res://Global/Inventory.gd"
[display] [display]