Added graphics options for psx effects
This commit is contained in:
@@ -10,8 +10,8 @@
|
||||
script = ExtResource("1_k5sd1")
|
||||
title = "ENEMY_FAST_BABY"
|
||||
target_type = 1
|
||||
scene = ExtResource("3_otbdk")
|
||||
icon = ExtResource("1_xgen5")
|
||||
scene = ExtResource("3_otbdk")
|
||||
death_sprite = ExtResource("1_yj87d")
|
||||
sprite = ExtResource("2_mkbm6")
|
||||
spawn_power = 16
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
[gd_scene format=3 uid="uid://dtahuv0kpxx03"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://ejqql2660u6h" path="res://Worlds/GreenPlanet/Enemies/enemy_controller.gd" id="1_8k5ts"]
|
||||
[ext_resource type="Resource" uid="uid://cvehqh4tt28g7" path="res://Enemies/BabyEyeDog/baby_eye_dog.tres" id="2_8v4n0"]
|
||||
[ext_resource type="PackedScene" uid="uid://canrxnpxcugc2" path="res://Scenes/corpse.tscn" id="2_vl30x"]
|
||||
[ext_resource type="Script" uid="uid://cummt2be3r1gq" path="res://Scripts/hitbox.gd" id="5_f7xim"]
|
||||
[ext_resource type="Texture2D" uid="uid://b1fn60m6xfcsq" path="res://Assets/Textures/minimap_enemy.png" id="6_lbm5h"]
|
||||
@@ -23,7 +22,6 @@ viewport_path = NodePath("SubViewport")
|
||||
collision_layer = 4
|
||||
collision_mask = 0
|
||||
script = ExtResource("1_8k5ts")
|
||||
stats = ExtResource("2_8v4n0")
|
||||
status_manager = NodePath("StatusEffector")
|
||||
movement_controller = NodePath("PathingController")
|
||||
d_n = NodePath("Node3D")
|
||||
|
||||
@@ -2,10 +2,9 @@
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://bjo2q6vca5qlv" path="res://Worlds/GreenPlanet/Enemies/air_enemy.tscn" id="1_aormu"]
|
||||
[ext_resource type="PackedScene" uid="uid://o6whohcbalui" path="res://Enemies/Crystalisk/crystal_enemy.glb" id="2_myjng"]
|
||||
[ext_resource type="Resource" uid="uid://bffhb5krs5elm" path="res://Enemies/Crystalisk/crystalisk.tres" id="2_s62t3"]
|
||||
[ext_resource type="Script" uid="uid://cummt2be3r1gq" path="res://Scripts/hitbox.gd" id="3_myjng"]
|
||||
|
||||
[sub_resource type="ViewportTexture" id="ViewportTexture_tjipw"]
|
||||
[sub_resource type="ViewportTexture" id="ViewportTexture_ij8ev"]
|
||||
viewport_path = NodePath("SubViewport")
|
||||
|
||||
[sub_resource type="CapsuleShape3D" id="CapsuleShape3D_c5uwa"]
|
||||
@@ -17,10 +16,9 @@ radius = 0.133503
|
||||
height = 0.56
|
||||
|
||||
[node name="Dog" unique_id=1355419805 instance=ExtResource("1_aormu")]
|
||||
stats = ExtResource("2_s62t3")
|
||||
|
||||
[node name="Sprite3D" parent="." index="0" unique_id=2020998819]
|
||||
texture = SubResource("ViewportTexture_tjipw")
|
||||
texture = SubResource("ViewportTexture_ij8ev")
|
||||
|
||||
[node name="crystal_enemy" parent="." index="6" unique_id=86826412 instance=ExtResource("2_myjng")]
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
[ext_resource type="Texture2D" uid="uid://b1lwaxw62yp3p" path="res://Assets/Textures/dead_spike.png" id="1_skyfd"]
|
||||
[ext_resource type="Texture2D" uid="uid://duywsy7jmh4u" path="res://Assets/Textures/spike.png" id="2_idym2"]
|
||||
[ext_resource type="PackedScene" uid="uid://cveiaa0y66gln" path="res://Enemies/Crystalisk/crystal_enemy.tscn" id="3_7w5fm"]
|
||||
[ext_resource type="PackedScene" uid="uid://cveiaa0y66gln" path="res://Enemies/Crystalisk/crystal_enemy.tscn" id="3_fmkhl"]
|
||||
[ext_resource type="Script" uid="uid://cbwxa2a4hfcy4" path="res://Scripts/Resources/enemy.gd" id="4_x2l2n"]
|
||||
[ext_resource type="Texture2D" uid="uid://sybn6bjbj5fh" path="res://Assets/TextureAtlases/spike.tres" id="5_okcvf"]
|
||||
|
||||
@@ -10,8 +10,8 @@
|
||||
script = ExtResource("4_x2l2n")
|
||||
title = "ENEMY_FLYING_CRYSTAL"
|
||||
target_type = 2
|
||||
scene = ExtResource("3_7w5fm")
|
||||
icon = ExtResource("2_idym2")
|
||||
scene = ExtResource("3_fmkhl")
|
||||
death_sprite = ExtResource("1_skyfd")
|
||||
sprite = ExtResource("5_okcvf")
|
||||
spawn_power = 6
|
||||
|
||||
@@ -10,8 +10,8 @@
|
||||
script = ExtResource("1_q48il")
|
||||
title = "ENEMY_HEAVY_WALKER"
|
||||
target_type = 1
|
||||
scene = ExtResource("3_m808b")
|
||||
icon = ExtResource("1_lck53")
|
||||
scene = ExtResource("3_m808b")
|
||||
death_sprite = ExtResource("1_qveaa")
|
||||
sprite = ExtResource("2_7nc4x")
|
||||
spawn_power = 14
|
||||
|
||||
@@ -2,7 +2,6 @@
|
||||
|
||||
[ext_resource type="Script" uid="uid://ejqql2660u6h" path="res://Worlds/GreenPlanet/Enemies/enemy_controller.gd" id="1_17xxt"]
|
||||
[ext_resource type="PackedScene" uid="uid://canrxnpxcugc2" path="res://Scenes/corpse.tscn" id="2_lirjc"]
|
||||
[ext_resource type="Resource" uid="uid://dxi17xvdlhkvc" path="res://Enemies/ElderEyeDog/elder_eye_dog.tres" id="2_qqld3"]
|
||||
[ext_resource type="Script" uid="uid://cummt2be3r1gq" path="res://Scripts/hitbox.gd" id="5_bi7k0"]
|
||||
[ext_resource type="Texture2D" uid="uid://b1fn60m6xfcsq" path="res://Assets/Textures/minimap_enemy.png" id="6_k6khd"]
|
||||
[ext_resource type="PackedScene" uid="uid://hjq3nrnumklp" path="res://UI/EnemyHealthBar/health_bar.tscn" id="7_wko6w"]
|
||||
@@ -23,7 +22,6 @@ viewport_path = NodePath("SubViewport")
|
||||
collision_layer = 4
|
||||
collision_mask = 0
|
||||
script = ExtResource("1_17xxt")
|
||||
stats = ExtResource("2_qqld3")
|
||||
status_manager = NodePath("StatusEffector")
|
||||
movement_controller = NodePath("PathingController")
|
||||
d_n = NodePath("Node3D")
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
[ext_resource type="Script" uid="uid://cbwxa2a4hfcy4" path="res://Scripts/Resources/enemy.gd" id="1_ivs7a"]
|
||||
[ext_resource type="Texture2D" uid="uid://cdnhe2mi5c5ln" path="res://Assets/Textures/dead_eye_dog.png" id="1_r8gpy"]
|
||||
[ext_resource type="Texture2D" uid="uid://g00wwrlxxdc5" path="res://Assets/Textures/icon_eye_dog.png" id="2_tyyee"]
|
||||
[ext_resource type="PackedScene" uid="uid://bvq6tbkuv2mfp" path="res://Enemies/EyeDog/eye_dog.tscn" id="3_tyyee"]
|
||||
[ext_resource type="PackedScene" uid="uid://bvq6tbkuv2mfp" path="res://Enemies/EyeDog/eye_dog.tscn" id="3_mxg1o"]
|
||||
[ext_resource type="Texture2D" uid="uid://dj13g1w14mekw" path="res://Assets/Textures/eye_dog.png" id="4_7ypa6"]
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_n6kdu"]
|
||||
@@ -16,8 +16,8 @@ resource_local_to_scene = true
|
||||
script = ExtResource("1_ivs7a")
|
||||
title = "ENEMY_DOG"
|
||||
target_type = 1
|
||||
scene = ExtResource("3_tyyee")
|
||||
icon = ExtResource("2_tyyee")
|
||||
scene = ExtResource("3_mxg1o")
|
||||
death_sprite = ExtResource("1_r8gpy")
|
||||
sprite = SubResource("AtlasTexture_n6kdu")
|
||||
health = 180
|
||||
|
||||
@@ -2,7 +2,6 @@
|
||||
|
||||
[ext_resource type="Script" uid="uid://ejqql2660u6h" path="res://Worlds/GreenPlanet/Enemies/enemy_controller.gd" id="1_1dh2f"]
|
||||
[ext_resource type="PackedScene" uid="uid://canrxnpxcugc2" path="res://Scenes/corpse.tscn" id="2_1dh2f"]
|
||||
[ext_resource type="Resource" uid="uid://8eba45hql7bo" path="res://Enemies/EyeDog/eye_dog.tres" id="2_2t2qp"]
|
||||
[ext_resource type="Script" uid="uid://cummt2be3r1gq" path="res://Scripts/hitbox.gd" id="6_3v8fr"]
|
||||
[ext_resource type="Texture2D" uid="uid://b1fn60m6xfcsq" path="res://Assets/Textures/minimap_enemy.png" id="7_bkkhh"]
|
||||
[ext_resource type="PackedScene" uid="uid://hjq3nrnumklp" path="res://UI/EnemyHealthBar/health_bar.tscn" id="8_k2835"]
|
||||
@@ -10,11 +9,11 @@
|
||||
[ext_resource type="PackedScene" uid="uid://dlhx6r23m5ceg" path="res://Enemies/EyeDog/eyedog.glb" id="10_h25mw"]
|
||||
[ext_resource type="Script" uid="uid://cojjgevmbhwal" path="res://Scripts/status_effector.gd" id="11_kpdsm"]
|
||||
|
||||
[sub_resource type="SphereShape3D" id="SphereShape3D_cavbv"]
|
||||
radius = 0.359969
|
||||
[sub_resource type="BoxShape3D" id="BoxShape3D_246sn"]
|
||||
size = Vector3(0.58, 0.67, 0.92)
|
||||
|
||||
[sub_resource type="SphereShape3D" id="SphereShape3D_h25mw"]
|
||||
radius = 0.194271
|
||||
radius = 0.25
|
||||
|
||||
[sub_resource type="ViewportTexture" id="ViewportTexture_1kwxq"]
|
||||
viewport_path = NodePath("SubViewport")
|
||||
@@ -23,7 +22,6 @@ viewport_path = NodePath("SubViewport")
|
||||
collision_layer = 4
|
||||
collision_mask = 0
|
||||
script = ExtResource("1_1dh2f")
|
||||
stats = ExtResource("2_2t2qp")
|
||||
status_manager = NodePath("StatusEffector")
|
||||
movement_controller = NodePath("PathingController")
|
||||
d_n = NodePath("Node3D")
|
||||
@@ -32,12 +30,12 @@ metadata/_custom_type_script = "uid://ejqql2660u6h"
|
||||
|
||||
[node name="Hitbox" type="CollisionShape3D" parent="." unique_id=1815903905]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.33811, -0.0104714)
|
||||
shape = SubResource("SphereShape3D_cavbv")
|
||||
shape = SubResource("BoxShape3D_246sn")
|
||||
script = ExtResource("6_3v8fr")
|
||||
metadata/_custom_type_script = "uid://cummt2be3r1gq"
|
||||
|
||||
[node name="Hitbox2" type="CollisionShape3D" parent="." unique_id=906346229]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.559695, -0.45924)
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -5.9604645e-08, 0.73585325, -0.58485436)
|
||||
shape = SubResource("SphereShape3D_h25mw")
|
||||
script = ExtResource("6_3v8fr")
|
||||
critical_zone = true
|
||||
@@ -115,7 +113,7 @@ bones/23/scale = Vector3(0.89347196, 1, 1)
|
||||
bones/24/position = Vector3(0.08454189, 0.014853473, 0.12984678)
|
||||
|
||||
[node name="AnimationPlayer" parent="eyedog" index="1" unique_id=993841819]
|
||||
autoplay = &"Walk"
|
||||
autoplay = &"ArmatureAction"
|
||||
|
||||
[connection signal="recieved_effect" from="Hitbox" to="StatusEffector" method="add_effect"]
|
||||
[connection signal="took_damage" from="Hitbox" to="." method="take_damage"]
|
||||
|
||||
@@ -5,8 +5,9 @@ extends HeroState
|
||||
|
||||
|
||||
func enter_state() -> void:
|
||||
if hero.game_manager:
|
||||
hero.game_manager.level.enable_non_path_tower_frames()
|
||||
hero.edit_tool.enabled = true
|
||||
hero.game_manager.level.enable_non_path_tower_frames()
|
||||
hero.left_hand_model.visible = true
|
||||
hero.gauntlet_model.visible = true
|
||||
hero.cassette.visible = false
|
||||
|
||||
10
PCs/hero.gd
10
PCs/hero.gd
@@ -100,7 +100,7 @@ func _ready() -> void:
|
||||
sprite.queue_free()
|
||||
player_name_tag.queue_free()
|
||||
for card: Card in hero_class.deck:
|
||||
if game_manager.card_gameplay:
|
||||
if game_manager and game_manager.card_gameplay:
|
||||
draw_pile.add(card)
|
||||
else:
|
||||
add_card(card)
|
||||
@@ -239,7 +239,6 @@ func set_card_elements_visibility(value: bool) -> void:
|
||||
else:
|
||||
hud.hide_hot_wheel()
|
||||
hud.hide_slots()
|
||||
$FirstPersonViewport/Head2/LeftHand.visible = value
|
||||
|
||||
|
||||
func _unhandled_input(event: InputEvent) -> void:
|
||||
@@ -248,9 +247,10 @@ func _unhandled_input(event: InputEvent) -> void:
|
||||
if event.is_action_pressed("Pause"):
|
||||
var menu: PauseMenu = pause_menu_scene.instantiate() as PauseMenu
|
||||
pause()
|
||||
menu.game_manager = game_manager
|
||||
menu.quit_to_desktop_pressed.connect(game_manager.quit_to_desktop)
|
||||
menu.quit_to_main_menu_pressed.connect(game_manager.scene_switch_main_menu)
|
||||
if game_manager:
|
||||
menu.game_manager = game_manager
|
||||
menu.quit_to_desktop_pressed.connect(game_manager.quit_to_desktop)
|
||||
menu.quit_to_main_menu_pressed.connect(game_manager.scene_switch_main_menu)
|
||||
menu.closed.connect(unpause)
|
||||
hud.add_child(menu)
|
||||
if event.is_action_pressed("Show Wave Preview"):
|
||||
|
||||
@@ -16,7 +16,6 @@
|
||||
[ext_resource type="Script" uid="uid://b6kjrl7ae1mi0" path="res://PCs/hud.gd" id="8_yl6ka"]
|
||||
[ext_resource type="Script" uid="uid://hy51bq7x0fy8" path="res://Scripts/on_top_camera.gd" id="11_4sdwe"]
|
||||
[ext_resource type="PackedScene" uid="uid://rc0qcrcbmw7p" path="res://Gauntlet/gauntlet.glb" id="11_h1yfy"]
|
||||
[ext_resource type="PackedScene" uid="uid://ckl5tw5rmewhp" path="res://left_hand/card_hand_model.glb" id="11_h82f6"]
|
||||
[ext_resource type="Script" uid="uid://ckkioruqgbs8p" path="res://Scripts/minimap_cam.gd" id="12_3hpi3"]
|
||||
[ext_resource type="PackedScene" uid="uid://clgbmveluyewe" path="res://card_hand.glb" id="12_r2yb6"]
|
||||
[ext_resource type="PackedScene" uid="uid://4g0vatb73duj" path="res://Scenes/Cassette/cassette.glb" id="13_7immr"]
|
||||
@@ -168,7 +167,7 @@ wave_preview_scene = ExtResource("2_o55s8")
|
||||
hero_class = ExtResource("2_dbyo0")
|
||||
camera = NodePath("ViewMovement/Head")
|
||||
gun_camera = NodePath("FirstPersonViewport/Head2")
|
||||
left_hand = NodePath("FirstPersonViewport/Head2/LeftHand")
|
||||
left_hand = NodePath("FirstPersonViewport/Head2/RightHand/card_hand")
|
||||
right_hand = NodePath("FirstPersonViewport/Head2/RightHand")
|
||||
edit_tool = NodePath("ViewMovement/Head/EditTool")
|
||||
carding_tool = NodePath("ViewMovement/Head/CardPlacingTool")
|
||||
@@ -349,18 +348,6 @@ tree_root = SubResource("AnimationNodeBlendTree_xav2s")
|
||||
anim_player = NodePath("../card_hand/AnimationPlayer")
|
||||
parameters/Blend2/blend_amount = 0.0
|
||||
|
||||
[node name="LeftHand" type="Node3D" parent="FirstPersonViewport/Head2" unique_id=117309443]
|
||||
transform = Transform3D(0.235, 0, 0, 0, 0.235, 0, 0, 0, 0.235, -0.645, -0.26, -1.04)
|
||||
|
||||
[node name="card_hand_model" parent="FirstPersonViewport/Head2/LeftHand" unique_id=141858112 instance=ExtResource("11_h82f6")]
|
||||
transform = Transform3D(-4.16989, -0.848374, -3.61733e-07, -0.824933, 4.05468, -0.993384, 0.198049, -0.973442, -4.13774, 1.56596, 0.519149, 3.37051)
|
||||
|
||||
[node name="Body_004" parent="FirstPersonViewport/Head2/LeftHand/card_hand_model/Armature/Skeleton3D" parent_id_path=PackedInt32Array(141858112, 1120957052) index="0" unique_id=1372468431]
|
||||
layers = 2
|
||||
|
||||
[node name="Cards" type="Node3D" parent="FirstPersonViewport/Head2/LeftHand" unique_id=140136041]
|
||||
transform = Transform3D(4.25532, 0, 0, 0, 4.25532, 0, 0, 0, 4.25532, 2.01277, 0.787234, 3.39179)
|
||||
|
||||
[node name="MiniMapViewport" type="SubViewport" parent="." unique_id=384727742]
|
||||
size = Vector2i(256, 256)
|
||||
render_target_update_mode = 4
|
||||
@@ -970,5 +957,4 @@ size = 2.243
|
||||
[editable path="FirstPersonViewport/Head2/RightHand/gauntlet"]
|
||||
[editable path="FirstPersonViewport/Head2/RightHand/card_hand"]
|
||||
[editable path="FirstPersonViewport/Head2/RightHand/card_hand/Empty_001/cassette"]
|
||||
[editable path="FirstPersonViewport/Head2/LeftHand/card_hand_model"]
|
||||
[editable path="CoinViewport/Coin"]
|
||||
|
||||
@@ -44,7 +44,7 @@ var enemy_count: int = 0
|
||||
func _ready() -> void:
|
||||
$StartWaveLabel.theme_type_variation = "WaveStartLabel"
|
||||
$InteractLabel.theme_type_variation = "InteractLabel"
|
||||
if player.game_manager.card_gameplay:
|
||||
if player.game_manager and player.game_manager.card_gameplay:
|
||||
energy_label.visible = true
|
||||
|
||||
|
||||
|
||||
@@ -1,7 +1,12 @@
|
||||
[gd_resource type="ShaderMaterial" format=3 uid="uid://d224ea5fdnmh2"]
|
||||
|
||||
[ext_resource type="Shader" uid="uid://c5bffujq0l70k" path="res://Shaders/jitter.gdshader" id="1_j6syw"]
|
||||
[ext_resource type="Shader" uid="uid://dq04j2s5foo2f" path="res://Shaders/mightyduke_ps1.gdshader" id="1_6ajq0"]
|
||||
[ext_resource type="Texture2D" uid="uid://epo8me1kxpba" path="res://Scenes/Cassette/cassette_cassette_tex.png" id="2_iy75q"]
|
||||
|
||||
[resource]
|
||||
render_priority = 0
|
||||
shader = ExtResource("1_j6syw")
|
||||
shader = ExtResource("1_6ajq0")
|
||||
shader_parameter/albedo = ExtResource("2_iy75q")
|
||||
shader_parameter/jitter_z_coordinate = true
|
||||
shader_parameter/jitter_depth_independent = true
|
||||
shader_parameter/alpha_scissor = 1.0
|
||||
|
||||
@@ -6,11 +6,15 @@ var direction: Vector3
|
||||
|
||||
|
||||
func _ready() -> void:
|
||||
distance_remaining = character.global_position.distance_to(goal.global_position)
|
||||
direction = character.global_position.direction_to(goal.global_position)
|
||||
super._ready()
|
||||
if goal:
|
||||
distance_remaining = character.global_position.distance_to(goal.global_position)
|
||||
direction = character.global_position.direction_to(goal.global_position)
|
||||
|
||||
|
||||
func _physics_process(delta: float) -> void:
|
||||
if !direction:
|
||||
return
|
||||
var distance_travelled: float = (character.stats.movement_speed * clampf(character.movement_speed_penalty, 0.0, 1.0)) * delta
|
||||
distance_remaining -= distance_travelled
|
||||
character.global_position = character.global_position + (direction * distance_travelled)
|
||||
|
||||
@@ -24,10 +24,9 @@ var next_pos: Vector3
|
||||
|
||||
func _ready() -> void:
|
||||
super._ready()
|
||||
#if path:
|
||||
# distance_remaining = path.get_baked_length()
|
||||
next_node = flow_field.get_closest_traversable_point(character.global_position)
|
||||
distance_remaining += calculate_distance_to_goal(next_node)
|
||||
if flow_field:
|
||||
next_node = flow_field.get_closest_traversable_point(character.global_position)
|
||||
distance_remaining += calculate_distance_to_goal(next_node)
|
||||
|
||||
|
||||
func calculate_distance_to_goal(node: FlowNode) -> float:
|
||||
|
||||
@@ -4,8 +4,8 @@ extends Resource
|
||||
@export var title: String = "enemy name goes here"
|
||||
@export var description: String = "enemy description goes here"
|
||||
@export var target_type: Data.EnemyType
|
||||
@export var scene: PackedScene
|
||||
@export var icon: Texture
|
||||
@export var scene: PackedScene
|
||||
@export var death_sprite: Texture
|
||||
@export var sprite: AtlasTexture
|
||||
@export var spawn_power: int = 10
|
||||
|
||||
@@ -7,6 +7,8 @@ const SAVE_PATH: String = "user://graphics_settings.tres"
|
||||
@export var vsync_mode: int = 1
|
||||
@export var aa_mode: int = 0
|
||||
@export var windowed_mode: int = 0
|
||||
@export var vertex_jitter: float = 0.2
|
||||
@export var affine_warping: float = 1.0
|
||||
|
||||
|
||||
func apply_graphical_settings(viewport: Viewport) -> void:
|
||||
@@ -28,6 +30,8 @@ func apply_graphical_settings(viewport: Viewport) -> void:
|
||||
DisplayServer.window_set_mode(DisplayServer.WINDOW_MODE_FULLSCREEN)
|
||||
2:
|
||||
DisplayServer.window_set_mode(DisplayServer.WINDOW_MODE_EXCLUSIVE_FULLSCREEN)
|
||||
RenderingServer.global_shader_parameter_set("vertex_jitter", vertex_jitter)
|
||||
RenderingServer.global_shader_parameter_set("affine_amount", affine_warping)
|
||||
|
||||
|
||||
func save_profile_to_disk() -> void:
|
||||
|
||||
@@ -44,12 +44,12 @@ func _process(delta: float) -> void:
|
||||
if enemy_spawn_timers[enemy] >= enemy.spawn_cooldown:
|
||||
if is_multiplayer_authority():
|
||||
if type == Data.EnemyType.LAND:
|
||||
networked_spawn_land_enemy.rpc(enemy.title, own_id, enemy_id)
|
||||
networked_spawn_land_enemy.rpc(game_manager.level.enemy_pool.find(enemy), own_id, enemy_id)
|
||||
if type == Data.EnemyType.AIR:
|
||||
var radius: float = 10.0
|
||||
var random_dir: Vector3 = Vector3(randf_range(-1, 1), randf_range(-1, 1), randf_range(-1, 1))
|
||||
var random_pos: Vector3 = randf_range(0, radius) * random_dir.normalized()
|
||||
networked_spawn_air_enemy.rpc(enemy.title, random_pos, own_id, enemy_id)
|
||||
networked_spawn_air_enemy.rpc(game_manager.level.enemy_pool.find(enemy), random_pos, own_id, enemy_id)
|
||||
|
||||
enemy_spawn_timers[enemy] -= enemy.spawn_cooldown
|
||||
enemy_spawned.emit()
|
||||
@@ -60,16 +60,12 @@ func _process(delta: float) -> void:
|
||||
|
||||
#TODO: not sure enemies need all this info over the network
|
||||
@rpc("reliable", "call_local")
|
||||
func networked_spawn_land_enemy(enemy_stats: String, id1: int, id2: int) -> void:
|
||||
var e_stats: Enemy = null
|
||||
for enemy: Enemy in game_manager.level.enemy_pool:
|
||||
if enemy.title == enemy_stats:
|
||||
e_stats = enemy
|
||||
func networked_spawn_land_enemy(enemy_num: int, id1: int, id2: int) -> void:
|
||||
var enemy: EnemyController
|
||||
enemy = e_stats.scene.instantiate()
|
||||
enemy = game_manager.level.enemy_pool[enemy_num].scene.instantiate()
|
||||
enemy.stats = game_manager.level.enemy_pool[enemy_num]
|
||||
enemy.corpse_root = game_manager.level.corpses
|
||||
enemy.name = str(id1) + str(id2)
|
||||
enemy.stats = e_stats
|
||||
enemy.died.connect(enemy_died_callback)
|
||||
enemy.reached_goal.connect(enemy_reached_goal_callback)
|
||||
#enemy.movement_controller.path = path.curve
|
||||
@@ -107,17 +103,13 @@ func update_path() -> void:
|
||||
|
||||
|
||||
@rpc("reliable", "call_local")
|
||||
func networked_spawn_air_enemy(enemy_stats: String, pos: Vector3, id1: int, id2: int) -> void:
|
||||
var e_stats: Enemy = null
|
||||
for enemy: Enemy in game_manager.level.enemy_pool:
|
||||
if enemy.title == enemy_stats:
|
||||
e_stats = enemy
|
||||
func networked_spawn_air_enemy(enemy_num: int, pos: Vector3, id1: int, id2: int) -> void:
|
||||
var enemy: EnemyController
|
||||
enemy = e_stats.scene.instantiate()
|
||||
enemy = game_manager.level.enemy_pool[enemy_num].scene.instantiate()
|
||||
enemy.stats = game_manager.level.enemy_pool[enemy_num]
|
||||
enemy.corpse_root = game_manager.level.corpses
|
||||
enemy.name = str(id1) + str(id2)
|
||||
enemy.position = pos + global_position
|
||||
enemy.stats = e_stats
|
||||
enemy.died.connect(enemy_died_callback)
|
||||
enemy.reached_goal.connect(enemy_reached_goal_callback)
|
||||
enemy.movement_controller.goal = dest
|
||||
|
||||
@@ -3,7 +3,7 @@ extends PanelContainer
|
||||
|
||||
signal all_players_ready()
|
||||
|
||||
var entry_scene: PackedScene = preload("res://Scenes/UI/scoreboard_entry.tscn")
|
||||
var entry_scene: PackedScene = preload("res://UI/scoreboard_entry.tscn")
|
||||
var entries: Dictionary = {}
|
||||
|
||||
|
||||
|
||||
@@ -1,143 +0,0 @@
|
||||
shader_type spatial;
|
||||
render_mode skip_vertex_transform;
|
||||
|
||||
uniform bool billboard = false;
|
||||
|
||||
uniform sampler2D color_texture : source_color, filter_nearest, repeat_disable;
|
||||
|
||||
uniform vec3 tint : source_color = vec3(1);
|
||||
|
||||
uniform bool vertex_snapping = true;
|
||||
uniform bool affine_texture_mapping = true;
|
||||
|
||||
group_uniforms Fog;
|
||||
uniform bool add_fog = false;
|
||||
uniform vec3 fog_color : source_color = vec3(0.42, 0.42, 0.45);
|
||||
uniform vec2 fog_start_end = vec2(10, 100);
|
||||
group_uniforms;
|
||||
|
||||
group_uniforms Light;
|
||||
uniform bool add_dynamic_vertex_lighting = false;
|
||||
uniform vec3 light_direction = vec3(0, 1, 0);
|
||||
uniform float light_intensity = 1.0;
|
||||
uniform vec3 ambient_light : source_color = vec3(0);
|
||||
group_uniforms;
|
||||
|
||||
group_uniforms Dither;
|
||||
uniform bool add_dither = true;
|
||||
uniform float dither_spread = 1.0;
|
||||
uniform float dither_gamma = 1.0;
|
||||
group_uniforms;
|
||||
|
||||
varying vec4 clip_pos;
|
||||
varying float FOG_FACTOR;
|
||||
|
||||
void vertex() {
|
||||
mat4 model_matrix = MODEL_MATRIX;
|
||||
|
||||
if (billboard) {
|
||||
mat4 mat_world = mat4(
|
||||
normalize(INV_VIEW_MATRIX[0]),
|
||||
vec4(0, 1, 0, 0),
|
||||
normalize(INV_VIEW_MATRIX[2]),
|
||||
MODEL_MATRIX[3]);
|
||||
|
||||
model_matrix = mat_world;
|
||||
|
||||
MODELVIEW_MATRIX = VIEW_MATRIX * mat_world;
|
||||
|
||||
MODELVIEW_NORMAL_MATRIX = mat3(MODELVIEW_MATRIX);
|
||||
}
|
||||
|
||||
vec4 world_space = model_matrix * vec4(VERTEX, 1);
|
||||
|
||||
vec4 clip = PROJECTION_MATRIX * VIEW_MATRIX * world_space;
|
||||
|
||||
vec4 vertex = clip;
|
||||
|
||||
// Snap to nearest pixel
|
||||
if (vertex_snapping) {
|
||||
vertex.xy = round(clip.xy / clip.w * VIEWPORT_SIZE.xy) / VIEWPORT_SIZE.xy * clip.w;
|
||||
}
|
||||
|
||||
POSITION = vertex;
|
||||
|
||||
// Need to hold on to clip.w to reverse perspective corrections
|
||||
clip_pos = vertex;
|
||||
|
||||
// Calculate vertex distance from camera for fog
|
||||
float view_distance = length(CAMERA_POSITION_WORLD - world_space.xyz);
|
||||
FOG_FACTOR = (fog_start_end.y - (view_distance)) / (fog_start_end.y - fog_start_end.x);
|
||||
FOG_FACTOR = 1.0 - clamp(FOG_FACTOR, 0.0, 1.0);
|
||||
|
||||
|
||||
NORMAL = MODEL_NORMAL_MATRIX * NORMAL;
|
||||
|
||||
if (add_dynamic_vertex_lighting) {
|
||||
float direct_light = clamp(dot(NORMAL, normalize(light_direction)), 0, 1);
|
||||
|
||||
vec3 light = ambient_light + direct_light * light_intensity;
|
||||
COLOR.rgb *= clamp(light, vec3(0), vec3(1));
|
||||
}
|
||||
|
||||
// Multiply by perspective correction to undo it in fragment shader
|
||||
if (affine_texture_mapping) {
|
||||
UV = UV * clip_pos.w;
|
||||
COLOR *= clip_pos.w;
|
||||
FOG_FACTOR *= clip_pos.w;
|
||||
}
|
||||
}
|
||||
|
||||
void fragment() {
|
||||
vec2 uv = UV;
|
||||
vec3 vertex_color = COLOR.rgb;
|
||||
float fog_factor = FOG_FACTOR;
|
||||
|
||||
// Undo perspective correction
|
||||
if (affine_texture_mapping) {
|
||||
uv /= clip_pos.w;
|
||||
vertex_color /= clip_pos.w;
|
||||
fog_factor /= clip_pos.w;
|
||||
}
|
||||
|
||||
vec3 texture_color = texture(color_texture, uv).rgb;
|
||||
|
||||
vec3 albedo = texture_color * vertex_color * tint;
|
||||
|
||||
vec3 fogged = albedo;
|
||||
|
||||
if (add_fog) {
|
||||
fogged = mix(albedo, fog_color, fog_factor);
|
||||
fogged = clamp(fogged, vec3(0), vec3(1));
|
||||
}
|
||||
|
||||
vec3 quantized = fogged;
|
||||
|
||||
if (add_dither) {
|
||||
int ps1_dither_matrix[16] = {
|
||||
-4, 0, -3, 1,
|
||||
2, -2, 3, -1,
|
||||
-3, 1, -4, 0,
|
||||
3, -1, 2, -2
|
||||
};
|
||||
|
||||
// Index 1D dither matrix based on 2D screen coordinates
|
||||
float noise = float(ps1_dither_matrix[(int(FRAGCOORD.x) % 4) + (int(FRAGCOORD.y) % 4) * 4]);
|
||||
|
||||
// Apply dithering and quantize 24 bit srgb to 15 bit srgb according to https://psx-spx.consoledev.net/graphicsprocessingunitgpu/
|
||||
quantized = pow(fogged, vec3(1.0 / dither_gamma)); // Convert to srgb cause it imo looks better and is probably correct idk looks more correct than linear quantization
|
||||
quantized = round(quantized * 255.0 + noise); // Convert to 0-255 and add dither noise
|
||||
quantized = clamp(round(quantized), vec3(0), vec3(255)); // Clamp to 0-255 in case of overflow
|
||||
quantized = clamp(quantized / 8.0, vec3(0), vec3(31)); // Convert to 0-31 range
|
||||
quantized /= 31.0; // Convert back to 0-1 range
|
||||
|
||||
quantized = pow(quantized, vec3(dither_gamma)); // Convert back to linear
|
||||
}
|
||||
|
||||
ALBEDO = quantized;
|
||||
}
|
||||
|
||||
void light() {
|
||||
DIFFUSE_LIGHT = vec3(1);
|
||||
SPECULAR_LIGHT = vec3(0);
|
||||
}
|
||||
@@ -1 +0,0 @@
|
||||
uid://bc2aherqyu3na
|
||||
@@ -1,49 +0,0 @@
|
||||
shader_type spatial;
|
||||
render_mode blend_mix,
|
||||
cull_disabled,
|
||||
depth_prepass_alpha,
|
||||
shadows_disabled,
|
||||
specular_disabled,
|
||||
vertex_lighting;
|
||||
|
||||
global uniform bool affine_mapping = false;
|
||||
global uniform ivec2 jitter_resolution = ivec2(320, 240);
|
||||
uniform sampler2D albedo : source_color, filter_nearest;
|
||||
uniform float alpha_scissor : hint_range(0, 1) = 0.5;
|
||||
|
||||
vec4 snap_to_position(vec4 base_position)
|
||||
{
|
||||
vec4 snapped_position = base_position;
|
||||
snapped_position.xyz = base_position.xyz / base_position.w;
|
||||
|
||||
vec2 snap_resulotion = floor(vec2(jitter_resolution));
|
||||
snapped_position.x = floor(snap_resulotion.x * snapped_position.x) / snap_resulotion.x;
|
||||
snapped_position.y = floor(snap_resulotion.y * snapped_position.y) / snap_resulotion.y;
|
||||
|
||||
snapped_position.xyz *= base_position.w;
|
||||
return snapped_position;
|
||||
}
|
||||
|
||||
void vertex()
|
||||
{
|
||||
vec4 snapped_position = snap_to_position(PROJECTION_MATRIX * MODELVIEW_MATRIX * vec4(VERTEX, 1.0));
|
||||
if (affine_mapping)
|
||||
{
|
||||
POSITION = snapped_position;
|
||||
POSITION /= abs(POSITION.w);
|
||||
}
|
||||
else
|
||||
{
|
||||
POSITION = snapped_position;
|
||||
}
|
||||
}
|
||||
|
||||
void fragment()
|
||||
{
|
||||
vec4 color_base = COLOR;
|
||||
vec4 texture_color = texture(albedo, UV);
|
||||
|
||||
ALBEDO = (color_base * texture_color).rgb;
|
||||
ALPHA = texture_color.a * color_base.a;
|
||||
ALPHA_SCISSOR_THRESHOLD = alpha_scissor;
|
||||
}
|
||||
@@ -1 +0,0 @@
|
||||
uid://c5bffujq0l70k
|
||||
@@ -16,8 +16,9 @@ uniform sampler2D albedo: source_color, filter_nearest_mipmap;
|
||||
global uniform float vertex_jitter: hint_range(0.0, 1.0) = 0.5;
|
||||
uniform bool jitter_z_coordinate = true;
|
||||
uniform bool jitter_depth_independent = true;
|
||||
global uniform bool affine_mapping = true;
|
||||
global uniform float affine_amount: hint_range(0.0, 1.0) = 1.0;
|
||||
uniform float alpha_scissor: hint_range(0.0, 1.0) = 1.0;
|
||||
varying vec2 perspective_uv;
|
||||
|
||||
void vertex() {
|
||||
VERTEX = (MODELVIEW_MATRIX * vec4(VERTEX, 1.0)).xyz;
|
||||
@@ -38,19 +39,14 @@ void vertex() {
|
||||
VERTEX.z = z_orig;
|
||||
}
|
||||
POSITION = PROJECTION_MATRIX * vec4(VERTEX, 1.0);
|
||||
if (affine_mapping) {
|
||||
|
||||
POSITION /= abs(POSITION.w);
|
||||
//UV *= VERTEX.z;
|
||||
}
|
||||
perspective_uv = UV;
|
||||
UV *= VERTEX.z;
|
||||
}
|
||||
|
||||
void fragment() {
|
||||
vec2 uv = UV;
|
||||
|
||||
//if (affine_texture_mapping) {
|
||||
// uv /= VERTEX.z;
|
||||
//}
|
||||
uv /= (VERTEX.z);
|
||||
uv = mix(perspective_uv, uv, affine_amount);
|
||||
|
||||
ALBEDO = texture(albedo, uv).rgb;
|
||||
ALPHA = texture(albedo, uv).a;
|
||||
|
||||
@@ -15,10 +15,10 @@ extends VBoxContainer
|
||||
|
||||
|
||||
func _ready() -> void:
|
||||
resolution_drop_down.add_item("320x240")
|
||||
resolution_drop_down.add_item("1920x1080")
|
||||
$MouseSens2/HBoxContainer/SpinBox.value = get_window().content_scale_factor
|
||||
$MouseSens2/HBoxContainer/HSlider.value = get_window().content_scale_factor
|
||||
#resolution_drop_down.add_item("320x240")
|
||||
#resolution_drop_down.add_item("1920x1080")
|
||||
#$MouseSens2/HBoxContainer/SpinBox.value = get_window().content_scale_factor
|
||||
#$MouseSens2/HBoxContainer/HSlider.value = get_window().content_scale_factor
|
||||
look_sens_slider.value = Data.preferences.mouse_sens
|
||||
look_sens_input.value = Data.preferences.mouse_sens
|
||||
toggle_sprint_checkbox.button_pressed = Data.preferences.toggle_sprint
|
||||
|
||||
@@ -6,6 +6,10 @@ extends VBoxContainer
|
||||
@export var vsync_dropdown: OptionButton
|
||||
@export var aa_dropdown: OptionButton
|
||||
@export var window_dropdown: OptionButton
|
||||
@export var vertex_jitter_input: SpinBox
|
||||
@export var vertex_jitter_slider: HSlider
|
||||
@export var affine_warping_input: SpinBox
|
||||
@export var affine_warping_slider: HSlider
|
||||
|
||||
|
||||
func _ready() -> void:
|
||||
@@ -13,6 +17,11 @@ func _ready() -> void:
|
||||
fov_slider.value = Data.graphics.hfov
|
||||
vsync_dropdown.selected = Data.graphics.vsync_mode
|
||||
aa_dropdown.selected = Data.graphics.aa_mode
|
||||
window_dropdown.selected = Data.graphics.windowed_mode
|
||||
vertex_jitter_input.value = Data.graphics.vertex_jitter
|
||||
vertex_jitter_slider.value = Data.graphics.vertex_jitter
|
||||
affine_warping_input.value = Data.graphics.affine_warping
|
||||
affine_warping_slider.value = Data.graphics.affine_warping
|
||||
|
||||
|
||||
func save() -> void:
|
||||
@@ -20,6 +29,8 @@ func save() -> void:
|
||||
Data.graphics.vsync_mode = vsync_dropdown.selected
|
||||
Data.graphics.aa_mode = aa_dropdown.selected
|
||||
Data.graphics.windowed_mode = window_dropdown.selected
|
||||
Data.graphics.vertex_jitter = vertex_jitter_slider.value
|
||||
Data.graphics.affine_warping = affine_warping_slider.value
|
||||
|
||||
|
||||
func _on_fov_spin_box_value_changed(value: float) -> void:
|
||||
@@ -34,3 +45,31 @@ func _on_fov_spin_box_value_changed(value: float) -> void:
|
||||
func _on_fov_h_slider_value_changed(value: float) -> void:
|
||||
fov_input.value = value
|
||||
Data.graphics.hfov = value
|
||||
|
||||
|
||||
func _on_vertex_jitter_spin_box_value_changed(value: float) -> void:
|
||||
if value < 0.0:
|
||||
value = 0.0
|
||||
if value > 1.0:
|
||||
value = 1.0
|
||||
vertex_jitter_slider.value = value
|
||||
Data.graphics.vertex_jitter = value
|
||||
|
||||
|
||||
func _on_vertex_jitter_h_slider_value_changed(value: float) -> void:
|
||||
vertex_jitter_input.value = value
|
||||
Data.graphics.vertex_jitter = value
|
||||
|
||||
|
||||
func _on_affine_warping_spin_box_value_changed(value: float) -> void:
|
||||
if value < 0.0:
|
||||
value = 0.0
|
||||
if value > 1.0:
|
||||
value = 1.0
|
||||
affine_warping_slider.value = value
|
||||
Data.graphics.affine_warping = value
|
||||
|
||||
|
||||
func _on_affine_warping_h_slider_value_changed(value: float) -> void:
|
||||
affine_warping_input.value = value
|
||||
Data.graphics.affine_warping = value
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
|
||||
[sub_resource type="ImageTexture" id="ImageTexture_03x6q"]
|
||||
|
||||
[node name="Graphics" type="VBoxContainer" unique_id=1842224615 node_paths=PackedStringArray("fov_input", "fov_slider", "vsync_dropdown", "aa_dropdown", "window_dropdown")]
|
||||
[node name="Graphics" type="VBoxContainer" unique_id=1842224615 node_paths=PackedStringArray("fov_input", "fov_slider", "vsync_dropdown", "aa_dropdown", "window_dropdown", "vertex_jitter_input", "vertex_jitter_slider", "affine_warping_input", "affine_warping_slider")]
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
@@ -16,6 +16,10 @@ fov_slider = NodePath("FOV/HBoxContainer/HSlider")
|
||||
vsync_dropdown = NodePath("VSync/OptionButton")
|
||||
aa_dropdown = NodePath("AntiAliasing/OptionButton")
|
||||
window_dropdown = NodePath("Windowed/OptionButton")
|
||||
vertex_jitter_input = NodePath("VextexJitter/HBoxContainer/SpinBox")
|
||||
vertex_jitter_slider = NodePath("VextexJitter/HBoxContainer/HSlider")
|
||||
affine_warping_input = NodePath("AffineWarping/HBoxContainer/SpinBox")
|
||||
affine_warping_slider = NodePath("AffineWarping/HBoxContainer/HSlider")
|
||||
|
||||
[node name="FOV" type="HBoxContainer" parent="." unique_id=693078328]
|
||||
layout_mode = 2
|
||||
@@ -120,5 +124,79 @@ popup/item_1/id = 1
|
||||
popup/item_2/text = "OPTION_FULLSCREEN"
|
||||
popup/item_2/id = 2
|
||||
|
||||
[node name="VextexJitter" type="HBoxContainer" parent="." unique_id=624638999]
|
||||
layout_mode = 2
|
||||
alignment = 1
|
||||
|
||||
[node name="Label" type="Label" parent="VextexJitter" unique_id=890349126]
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 3
|
||||
text = "OPTION_VERTEX_JITTER"
|
||||
horizontal_alignment = 1
|
||||
vertical_alignment = 1
|
||||
|
||||
[node name="HBoxContainer" type="HBoxContainer" parent="VextexJitter" unique_id=857909591]
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 3
|
||||
|
||||
[node name="SpinBox" type="SpinBox" parent="VextexJitter/HBoxContainer" unique_id=319711346]
|
||||
layout_mode = 2
|
||||
theme_override_icons/updown = SubResource("ImageTexture_03x6q")
|
||||
max_value = 1.0
|
||||
step = 0.01
|
||||
value = 0.2
|
||||
allow_greater = true
|
||||
allow_lesser = true
|
||||
alignment = 1
|
||||
update_on_text_changed = true
|
||||
|
||||
[node name="HSlider" type="HSlider" parent="VextexJitter/HBoxContainer" unique_id=451280678]
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 3
|
||||
size_flags_vertical = 1
|
||||
max_value = 1.0
|
||||
step = 0.01
|
||||
value = 0.2
|
||||
scrollable = false
|
||||
|
||||
[node name="AffineWarping" type="HBoxContainer" parent="." unique_id=962591793]
|
||||
layout_mode = 2
|
||||
alignment = 1
|
||||
|
||||
[node name="Label" type="Label" parent="AffineWarping" unique_id=206915184]
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 3
|
||||
text = "OPTION_AFFINE_WARPING"
|
||||
horizontal_alignment = 1
|
||||
vertical_alignment = 1
|
||||
|
||||
[node name="HBoxContainer" type="HBoxContainer" parent="AffineWarping" unique_id=1780949636]
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 3
|
||||
|
||||
[node name="SpinBox" type="SpinBox" parent="AffineWarping/HBoxContainer" unique_id=1434191726]
|
||||
layout_mode = 2
|
||||
theme_override_icons/updown = SubResource("ImageTexture_03x6q")
|
||||
max_value = 1.0
|
||||
step = 0.01
|
||||
value = 1.0
|
||||
allow_greater = true
|
||||
allow_lesser = true
|
||||
alignment = 1
|
||||
update_on_text_changed = true
|
||||
|
||||
[node name="HSlider" type="HSlider" parent="AffineWarping/HBoxContainer" unique_id=2037498715]
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 3
|
||||
size_flags_vertical = 1
|
||||
max_value = 1.0
|
||||
step = 0.01
|
||||
value = 1.0
|
||||
scrollable = false
|
||||
|
||||
[connection signal="value_changed" from="FOV/HBoxContainer/SpinBox" to="." method="_on_fov_spin_box_value_changed"]
|
||||
[connection signal="value_changed" from="FOV/HBoxContainer/HSlider" to="." method="_on_fov_h_slider_value_changed"]
|
||||
[connection signal="value_changed" from="VextexJitter/HBoxContainer/SpinBox" to="." method="_on_vertex_jitter_spin_box_value_changed"]
|
||||
[connection signal="value_changed" from="VextexJitter/HBoxContainer/HSlider" to="." method="_on_vertex_jitter_h_slider_value_changed"]
|
||||
[connection signal="value_changed" from="AffineWarping/HBoxContainer/SpinBox" to="." method="_on_affine_warping_spin_box_value_changed"]
|
||||
[connection signal="value_changed" from="AffineWarping/HBoxContainer/HSlider" to="." method="_on_affine_warping_h_slider_value_changed"]
|
||||
|
||||
@@ -1,7 +1,12 @@
|
||||
[gd_resource type="ShaderMaterial" format=3 uid="uid://bjdi4f801k0xt"]
|
||||
|
||||
[ext_resource type="Shader" uid="uid://c5bffujq0l70k" path="res://Shaders/jitter.gdshader" id="1_r6w0r"]
|
||||
[ext_resource type="Shader" uid="uid://dq04j2s5foo2f" path="res://Shaders/mightyduke_ps1.gdshader" id="1_kbuty"]
|
||||
[ext_resource type="Texture2D" uid="uid://u8p3xcl3gvie" path="res://Weapons/Assault/rifle_tex.png" id="2_kb7v3"]
|
||||
|
||||
[resource]
|
||||
render_priority = 0
|
||||
shader = ExtResource("1_r6w0r")
|
||||
shader = ExtResource("1_kbuty")
|
||||
shader_parameter/albedo = ExtResource("2_kb7v3")
|
||||
shader_parameter/jitter_z_coordinate = true
|
||||
shader_parameter/jitter_depth_independent = true
|
||||
shader_parameter/alpha_scissor = 1.0
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
[gd_scene format=3 uid="uid://y1qa1g3ic8sp"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://cvejbo3srx8py" path="res://Scripts/level.gd" id="1_ws6nn"]
|
||||
[ext_resource type="Script" uid="uid://cbwxa2a4hfcy4" path="res://Scripts/Resources/enemy.gd" id="2_ks6qx"]
|
||||
[ext_resource type="PackedScene" uid="uid://d2yv447trxkwt" path="res://Scenes/enemy_spawner.tscn" id="3_5imwp"]
|
||||
[ext_resource type="Script" uid="uid://cbwxa2a4hfcy4" path="res://Scripts/Resources/enemy.gd" id="3_6od8s"]
|
||||
[ext_resource type="Resource" uid="uid://8eba45hql7bo" path="res://Enemies/EyeDog/eye_dog.tres" id="3_j6d65"]
|
||||
[ext_resource type="Resource" uid="uid://dxi17xvdlhkvc" path="res://Enemies/ElderEyeDog/elder_eye_dog.tres" id="5_j6d65"]
|
||||
[ext_resource type="Resource" uid="uid://cvehqh4tt28g7" path="res://Enemies/BabyEyeDog/baby_eye_dog.tres" id="6_ks6qx"]
|
||||
[ext_resource type="Resource" uid="uid://bffhb5krs5elm" path="res://Enemies/Crystalisk/crystalisk.tres" id="9_4gdda"]
|
||||
[ext_resource type="Resource" uid="uid://8eba45hql7bo" path="res://Enemies/EyeDog/eye_dog.tres" id="3_6tcu8"]
|
||||
[ext_resource type="Resource" uid="uid://bffhb5krs5elm" path="res://Enemies/Crystalisk/crystalisk.tres" id="4_uh5sr"]
|
||||
[ext_resource type="Resource" uid="uid://cvehqh4tt28g7" path="res://Enemies/BabyEyeDog/baby_eye_dog.tres" id="5_g08yk"]
|
||||
[ext_resource type="Resource" uid="uid://dxi17xvdlhkvc" path="res://Enemies/ElderEyeDog/elder_eye_dog.tres" id="6_asmpj"]
|
||||
[ext_resource type="PackedScene" uid="uid://1b2ikdanl66b" path="res://Scenes/CardPrinter/card_printer.tscn" id="9_r25gu"]
|
||||
[ext_resource type="Script" uid="uid://cxwtuxytavfu5" path="res://Scripts/enemy_goal.gd" id="9_s3rd7"]
|
||||
[ext_resource type="Script" uid="uid://yk54owkf7pgj" path="res://Scripts/cinema_cam.gd" id="9_xuyhn"]
|
||||
@@ -248,7 +248,7 @@ size = Vector2(7.84, 3.69)
|
||||
|
||||
[node name="Bridge" type="Node3D" unique_id=1906077552 node_paths=PackedStringArray("tower_path", "player_spawns", "enemy_spawns", "enemy_goals", "corpses", "flow_field", "cinematic_cam", "printer", "shop")]
|
||||
script = ExtResource("1_ws6nn")
|
||||
enemy_pool = Array[ExtResource("3_6od8s")]([ExtResource("3_j6d65"), ExtResource("9_4gdda"), ExtResource("5_j6d65"), ExtResource("6_ks6qx")])
|
||||
enemy_pool = Array[ExtResource("2_ks6qx")]([ExtResource("3_6tcu8"), ExtResource("4_uh5sr"), ExtResource("5_g08yk"), ExtResource("6_asmpj")])
|
||||
tower_path = NodePath("Towers")
|
||||
player_spawns = [NodePath("PlayerSpawnLocations/PlayerSpawn1"), NodePath("PlayerSpawnLocations/PlayerSpawn2"), NodePath("PlayerSpawnLocations/PlayerSpawn3"), NodePath("PlayerSpawnLocations/PlayerSpawn4")]
|
||||
enemy_spawns = [NodePath("GroundSpawn"), NodePath("GroundSpawn2"), NodePath("GroundSpawn3"), NodePath("GroundSpawn4"), NodePath("GroundSpawn5"), NodePath("AirSpawn")]
|
||||
|
||||
@@ -1,7 +0,0 @@
|
||||
[gd_resource type="ShaderMaterial" format=3 uid="uid://fy4o12thbh6f"]
|
||||
|
||||
[ext_resource type="Shader" uid="uid://c5bffujq0l70k" path="res://Shaders/jitter.gdshader" id="1_2suih"]
|
||||
|
||||
[resource]
|
||||
render_priority = 0
|
||||
shader = ExtResource("1_2suih")
|
||||
@@ -1,8 +1,8 @@
|
||||
[gd_scene format=4 uid="uid://n8ab1cy7ordc"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://cr6hn1pbu35o1" path="res://card_model/3d_card.gd" id="1_o6jcx"]
|
||||
[ext_resource type="Shader" uid="uid://c5bffujq0l70k" path="res://Shaders/jitter.gdshader" id="2_o6jcx"]
|
||||
[ext_resource type="PackedScene" uid="uid://dixtx38u4jhd7" path="res://UI/card_hand.tscn" id="3_bnh6n"]
|
||||
[ext_resource type="Shader" uid="uid://dq04j2s5foo2f" path="res://Shaders/mightyduke_ps1.gdshader" id="3_hprih"]
|
||||
|
||||
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_0gfbg"]
|
||||
resource_name = "Face"
|
||||
@@ -12,7 +12,10 @@ roughness = 0.5
|
||||
|
||||
[sub_resource type="ShaderMaterial" id="ShaderMaterial_bdeaa"]
|
||||
render_priority = 0
|
||||
shader = ExtResource("2_o6jcx")
|
||||
shader = ExtResource("3_hprih")
|
||||
shader_parameter/jitter_z_coordinate = true
|
||||
shader_parameter/jitter_depth_independent = true
|
||||
shader_parameter/alpha_scissor = 1.0
|
||||
|
||||
[sub_resource type="ArrayMesh" id="ArrayMesh_0gfbg"]
|
||||
_surfaces = [{
|
||||
@@ -97,12 +100,18 @@ shadow_mesh = SubResource("ArrayMesh_gxum5")
|
||||
[sub_resource type="ShaderMaterial" id="ShaderMaterial_ld374"]
|
||||
resource_local_to_scene = true
|
||||
render_priority = 0
|
||||
shader = ExtResource("2_o6jcx")
|
||||
shader = ExtResource("3_hprih")
|
||||
shader_parameter/jitter_z_coordinate = true
|
||||
shader_parameter/jitter_depth_independent = true
|
||||
shader_parameter/alpha_scissor = 1.0
|
||||
|
||||
[sub_resource type="ShaderMaterial" id="ShaderMaterial_cuxkc"]
|
||||
resource_local_to_scene = true
|
||||
render_priority = 0
|
||||
shader = ExtResource("2_o6jcx")
|
||||
shader = ExtResource("3_hprih")
|
||||
shader_parameter/jitter_z_coordinate = true
|
||||
shader_parameter/jitter_depth_independent = true
|
||||
shader_parameter/alpha_scissor = 1.0
|
||||
|
||||
[node name="3DCard" type="Node3D" unique_id=1654548650 node_paths=PackedStringArray("card_in_hand", "mesh")]
|
||||
script = ExtResource("1_o6jcx")
|
||||
|
||||
@@ -1,7 +1,12 @@
|
||||
[gd_resource type="ShaderMaterial" format=3 uid="uid://5mnnhn5p1tll"]
|
||||
|
||||
[ext_resource type="Shader" uid="uid://c5bffujq0l70k" path="res://Shaders/jitter.gdshader" id="1_38tga"]
|
||||
[ext_resource type="Shader" uid="uid://dq04j2s5foo2f" path="res://Shaders/mightyduke_ps1.gdshader" id="1_38tga"]
|
||||
[ext_resource type="Texture2D" uid="uid://ctjkfe23t6crn" path="res://coin/coin.png" id="2_kttjc"]
|
||||
|
||||
[resource]
|
||||
render_priority = 0
|
||||
shader = ExtResource("1_38tga")
|
||||
shader_parameter/albedo = ExtResource("2_kttjc")
|
||||
shader_parameter/jitter_z_coordinate = true
|
||||
shader_parameter/jitter_depth_independent = true
|
||||
shader_parameter/alpha_scissor = 1.0
|
||||
|
||||
@@ -1,7 +1,10 @@
|
||||
[gd_resource type="ShaderMaterial" format=3 uid="uid://cmrs1ubeqtl71"]
|
||||
|
||||
[ext_resource type="Shader" uid="uid://c5bffujq0l70k" path="res://Shaders/jitter.gdshader" id="1_bpyoj"]
|
||||
[ext_resource type="Shader" uid="uid://dq04j2s5foo2f" path="res://Shaders/mightyduke_ps1.gdshader" id="1_bpyoj"]
|
||||
|
||||
[resource]
|
||||
render_priority = 0
|
||||
shader = ExtResource("1_bpyoj")
|
||||
shader_parameter/jitter_z_coordinate = true
|
||||
shader_parameter/jitter_depth_independent = true
|
||||
shader_parameter/alpha_scissor = 1.0
|
||||
|
||||
@@ -249,11 +249,11 @@ textures/canvas_textures/default_texture_filter=0
|
||||
|
||||
[shader_globals]
|
||||
|
||||
affine_mapping={
|
||||
"type": "bool",
|
||||
"value": true
|
||||
}
|
||||
vertex_jitter={
|
||||
"type": "float",
|
||||
"value": 0.2
|
||||
}
|
||||
affine_amount={
|
||||
"type": "float",
|
||||
"value": 1.0
|
||||
}
|
||||
|
||||
@@ -1,14 +1,44 @@
|
||||
[gd_scene format=3 uid="uid://crr8kg4ack7rq"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://bvq6tbkuv2mfp" path="res://Enemies/EyeDog/eye_dog.tscn" id="1_sb12i"]
|
||||
[ext_resource type="Texture2D" uid="uid://cdnhe2mi5c5ln" path="res://Assets/Textures/dead_eye_dog.png" id="2_6emce"]
|
||||
[ext_resource type="PackedScene" uid="uid://dl3rwqwbgrq2m" path="res://Enemies/ElderEyeDog/elder_eye_dog.tscn" id="2_gbhdq"]
|
||||
[ext_resource type="Texture2D" uid="uid://g00wwrlxxdc5" path="res://Assets/Textures/icon_eye_dog.png" id="3_lowby"]
|
||||
[ext_resource type="PackedScene" uid="uid://cveiaa0y66gln" path="res://Enemies/Crystalisk/crystal_enemy.tscn" id="3_y646j"]
|
||||
[ext_resource type="Script" uid="uid://cbwxa2a4hfcy4" path="res://Scripts/Resources/enemy.gd" id="4_58smv"]
|
||||
[ext_resource type="PackedScene" uid="uid://dtahuv0kpxx03" path="res://Enemies/BabyEyeDog/baby_eye_dog.tscn" id="4_lnbra"]
|
||||
[ext_resource type="PackedScene" uid="uid://dxgxbtf68lcv5" path="res://PCs/hero.tscn" id="5_6emce"]
|
||||
[ext_resource type="Texture2D" uid="uid://dj13g1w14mekw" path="res://Assets/Textures/eye_dog.png" id="5_a25ih"]
|
||||
|
||||
[sub_resource type="BoxShape3D" id="BoxShape3D_lowby"]
|
||||
size = Vector3(20, 1, 20)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_6emce"]
|
||||
resource_local_to_scene = true
|
||||
atlas = ExtResource("5_a25ih")
|
||||
region = Rect2(0, 0, 32, 32)
|
||||
|
||||
[sub_resource type="Resource" id="Resource_lowby"]
|
||||
resource_local_to_scene = true
|
||||
script = ExtResource("4_58smv")
|
||||
title = "ENEMY_DOG"
|
||||
target_type = 1
|
||||
icon = ExtResource("3_lowby")
|
||||
death_sprite = ExtResource("2_6emce")
|
||||
sprite = SubResource("AtlasTexture_6emce")
|
||||
health = 180
|
||||
movement_speed = 1.5
|
||||
spawn_cooldown = 1.2
|
||||
common_group = 6
|
||||
uncommon_group = 10
|
||||
uncommon_cost = 2
|
||||
rare_group = 16
|
||||
rare_cost = 3
|
||||
epic_group = 22
|
||||
epic_cost = 5
|
||||
legendary_group = 28
|
||||
legendary_cost = 6
|
||||
|
||||
[node name="Node3D" type="Node3D" unique_id=747882904]
|
||||
|
||||
[node name="StaticBody3D" type="StaticBody3D" parent="." unique_id=845198141]
|
||||
@@ -21,6 +51,7 @@ size = Vector3(20, 1, 20)
|
||||
|
||||
[node name="EyeDog" parent="." unique_id=1016179251 instance=ExtResource("1_sb12i")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3.4945354, 0.5048856, -2.1569223)
|
||||
stats = SubResource("Resource_lowby")
|
||||
|
||||
[node name="ElderEyeDog" parent="." unique_id=1106613653 instance=ExtResource("2_gbhdq")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.93381655, 0.5048856, -2.248024)
|
||||
|
||||
Reference in New Issue
Block a user