Skip to content

Commit f16cea2

Browse files
committedMay 5, 2024
invisibility effect
1 parent 99e778c commit f16cea2

8 files changed

+62
-8
lines changed
 

‎almost_invisible.tres

+6
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
[gd_resource type="StandardMaterial3D" format=3 uid="uid://vpkljo0emoov"]
2+
3+
[resource]
4+
transparency = 1
5+
depth_draw_mode = 1
6+
albedo_color = Color(0, 0, 0, 0.396078)

‎credits.txt

+2
Original file line numberDiff line numberDiff line change
@@ -16,3 +16,5 @@ Jetbike Flypast (Attribution NonCommercial 4.0) by tigersound via
1616
freesound.org.
1717

1818
Punch (CC0) by thefsoundman via freesound.org.
19+
20+
Shield Bash Impact (Attribution 4.0) by Hybrid_V via freesound.org.

‎level.gd

+13-3
Original file line numberDiff line numberDiff line change
@@ -23,11 +23,16 @@ var can_any_man_see_player_last_frame := false
2323
@onready var bullet_impact_scene := preload("res://bullet_impact.tscn")
2424
@onready var blood_impact_scene := preload("res://blood_impact.tscn")
2525
@onready var tracer_scene := preload("res://tracer.tscn")
26+
@onready var almost_invisible := preload("res://almost_invisible.tres")
2627
@onready var crosshair := $UI/Crosshair as Control
2728
@onready var nav_region: NavigationRegion3D = $NavigationRegion3D
29+
@onready var invisibility_overlay: Control = $UI/InvisibilityOverlay
2830
@onready var gun_shot_audio_stream_player := (
2931
$GunShotAudioStreamPlayer as AudioStreamPlayer
3032
)
33+
@onready var invisibility_audio_stream_player := (
34+
$InvisibilityAudioStreamPlayer as AudioStreamPlayer
35+
)
3136
@onready var hitmarker_audio_stream_player := (
3237
$HitmarkerAudioStreamPlayer as AudioStreamPlayer
3338
)
@@ -59,6 +64,7 @@ func _ready() -> void:
5964
)
6065
Input.set_mouse_mode(Input.MOUSE_MODE_CAPTURED)
6166
player.setup()
67+
invisibility_overlay.visible = false
6268

6369

6470
func on_velocity_computed(safe_velocity: Vector3, man: Man) -> void:
@@ -87,7 +93,11 @@ func _input(event: InputEvent) -> void:
8793
var key := event as InputEventKey
8894
if key and key.keycode == KEY_I and key.pressed:
8995
player.invisible = not player.invisible
90-
96+
invisibility_overlay.visible = player.invisible
97+
player.m_16.mesh.set_surface_override_material(
98+
0, almost_invisible if player.invisible else null
99+
)
100+
invisibility_audio_stream_player.play(0.9)
91101

92102
# Capture mouse if clicked on the game, needed for HTML5
93103
func _unhandled_input(event: InputEvent) -> void:
@@ -132,7 +142,7 @@ func _process(delta: float) -> void:
132142
var damage := 0.2
133143
if hit == man.head_hitbox:
134144
damage = 1.0
135-
headshot_audio_stream_player.play(4.9)
145+
headshot_audio_stream_player.play(0.085)
136146
hitmarker_audio_stream_player.play(0.1)
137147
man.health -= damage
138148
if man.health <= 0.0:
@@ -213,7 +223,7 @@ func process_use() -> void:
213223
)
214224
break
215225

216-
possession_audio_stream_player.play(0.7)
226+
possession_audio_stream_player.play(4.9)
217227
possessed_man_name = possessed_man.name
218228
# + 0.1 prevents player from falling beneath floor
219229
player.position = possessed_man.position + 0.1 * Vector3.UP

‎level.tscn

+18-5
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
[gd_scene load_steps=39 format=3 uid="uid://c2t6smyr8xtty"]
1+
[gd_scene load_steps=41 format=3 uid="uid://c2t6smyr8xtty"]
22

33
[ext_resource type="Script" path="res://level.gd" id="1_cikgd"]
44
[ext_resource type="PackedScene" uid="uid://cewa4cg7jix27" path="res://player.tscn" id="2_nvo2f"]
@@ -13,6 +13,7 @@
1313
[ext_resource type="Material" uid="uid://ckvcdcn2iue87" path="res://addons/character-controller/example/main/materials/wood.tres" id="11_cakef"]
1414
[ext_resource type="Texture2D" uid="uid://svijnbaaeuol" path="res://addons/character-controller/example/main/textures/Free DEMO Pixel Skies Background pack by Digital Moons/demo01_PixelSky.png" id="12_olhen"]
1515
[ext_resource type="PackedScene" uid="uid://dkw50wbe2l0x5" path="res://man.tscn" id="13_rnn3k"]
16+
[ext_resource type="AudioStream" uid="uid://dviwyfg3xgfoj" path="res://shield_bash_impact.ogg" id="16_l21hj"]
1617
[ext_resource type="AudioStream" uid="uid://5nuhnh2wdjbn" path="res://gun_shot.wav" id="16_ocj6n"]
1718
[ext_resource type="AudioStream" uid="uid://bnd132vcoxlw2" path="res://hitmarker.mp3" id="17_vgiwo"]
1819
[ext_resource type="AudioStream" uid="uid://c1bq65sbkv3hg" path="res://crushing_kick.wav" id="18_4esmo"]
@@ -87,6 +88,9 @@ ambient_light_color = Color(1, 1, 1, 1)
8788
tonemap_mode = 2
8889
glow_enabled = true
8990

91+
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_yhelo"]
92+
bg_color = Color(0.223529, 0.333333, 0.360784, 0.305882)
93+
9094
[node name="Level" type="Node3D"]
9195
script = ExtResource("1_cikgd")
9296

@@ -532,18 +536,24 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 9.9238, 0, 2.78047)
532536

533537
[node name="Pvt Renolds" parent="Men" instance=ExtResource("13_rnn3k")]
534538
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -5.76001, 0, 0.541676)
535-
patrol = true
536539

537540
[node name="Pvt Smith" parent="Men" instance=ExtResource("13_rnn3k")]
538541
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 6.95971, 7.15256e-07, 16.4773)
539-
patrol = true
540542

541543
[node name="Pvt Miller" parent="Men" instance=ExtResource("13_rnn3k")]
542544
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -10.5718, 3.75, 13.7766)
543545
patrol = false
544546

545547
[node name="UI" type="Node" parent="."]
546548

549+
[node name="InvisibilityOverlay" type="Panel" parent="UI"]
550+
anchors_preset = 15
551+
anchor_right = 1.0
552+
anchor_bottom = 1.0
553+
grow_horizontal = 2
554+
grow_vertical = 2
555+
theme_override_styles/panel = SubResource("StyleBoxFlat_yhelo")
556+
547557
[node name="Panel" type="Panel" parent="UI"]
548558
anchors_preset = 2
549559
anchor_top = 1.0
@@ -613,10 +623,13 @@ stream = ExtResource("16_ocj6n")
613623
stream = ExtResource("17_vgiwo")
614624

615625
[node name="HeadshotAudioStreamPlayer" type="AudioStreamPlayer" parent="."]
616-
stream = ExtResource("18_4esmo")
626+
stream = ExtResource("16_l21hj")
617627

618-
[node name="PossessionAudioStreamPlayer" type="AudioStreamPlayer" parent="."]
628+
[node name="InvisibilityAudioStreamPlayer" type="AudioStreamPlayer" parent="."]
619629
stream = ExtResource("19_cbexm")
620630

631+
[node name="PossessionAudioStreamPlayer" type="AudioStreamPlayer" parent="."]
632+
stream = ExtResource("18_4esmo")
633+
621634
[node name="DamageAudioStreamPlayer" type="AudioStreamPlayer" parent="."]
622635
stream = ExtResource("18_v0jvo")

‎m_16.gd

+3
Original file line numberDiff line numberDiff line change
@@ -8,3 +8,6 @@ var accuracy := 1.0
88
@onready var muzzle_flash_particles := (
99
$MuzzleFlash/GPUParticles3D as GPUParticles3D
1010
)
11+
@onready var mesh: MeshInstance3D = (
12+
find_children("*", "MeshInstance3D", true, false)[0]
13+
)

‎shield_bash_impact.ogg

17.9 KB
Binary file not shown.

‎shield_bash_impact.ogg.import

+19
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
[remap]
2+
3+
importer="oggvorbisstr"
4+
type="AudioStreamOggVorbis"
5+
uid="uid://dviwyfg3xgfoj"
6+
path="res://.godot/imported/shield_bash_impact.ogg-7fac4e51a5c9c4d2e2627913956eda65.oggvorbisstr"
7+
8+
[deps]
9+
10+
source_file="res://shield_bash_impact.ogg"
11+
dest_files=["res://.godot/imported/shield_bash_impact.ogg-7fac4e51a5c9c4d2e2627913956eda65.oggvorbisstr"]
12+
13+
[params]
14+
15+
loop=false
16+
loop_offset=0
17+
bpm=0
18+
beat_count=0
19+
bar_beats=4

‎todo.txt

+1
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ Todo:
2222
nearby location to walk to. When they reach that location, they will pick a
2323
new random location. When any enemy spots player, all enemies engage.
2424
- [x] After 20 seconds of wandering, enemy will return to patrol.
25+
- [x] Add invisibility indicator
2526

2627
Backlog:
2728

0 commit comments

Comments
 (0)
Please sign in to comment.