conforms file names to consistant standard
This commit is contained in:
12
scenes/boom_box/mat_boom_box_speaker.tres
Normal file
12
scenes/boom_box/mat_boom_box_speaker.tres
Normal file
@@ -0,0 +1,12 @@
|
||||
[gd_resource type="ShaderMaterial" format=3 uid="uid://b7bnfiwxvih3a"]
|
||||
|
||||
[ext_resource type="Shader" uid="uid://dq04j2s5foo2f" path="res://shaders/wiggly_model.gdshader" id="1_xk86o"]
|
||||
[ext_resource type="Texture2D" uid="uid://dtdp1y7dvcook" path="res://scenes/boom_box/tex_boom_box_speaker.png" id="2_8bqku"]
|
||||
|
||||
[resource]
|
||||
render_priority = 0
|
||||
shader = ExtResource("1_xk86o")
|
||||
shader_parameter/albedo = ExtResource("2_8bqku")
|
||||
shader_parameter/jitter_z_coordinate = true
|
||||
shader_parameter/jitter_depth_independent = true
|
||||
shader_parameter/alpha_scissor = 1.0
|
||||
BIN
scenes/boom_box/mdl_boom_box.glb
Normal file
BIN
scenes/boom_box/mdl_boom_box.glb
Normal file
Binary file not shown.
59
scenes/boom_box/mdl_boom_box.glb.import
Normal file
59
scenes/boom_box/mdl_boom_box.glb.import
Normal file
@@ -0,0 +1,59 @@
|
||||
[remap]
|
||||
|
||||
importer="scene"
|
||||
importer_version=1
|
||||
type="PackedScene"
|
||||
uid="uid://ca1y03riauk7v"
|
||||
path="res://.godot/imported/mdl_boom_box.glb-2bdf94ac121d2badd92b33bbe527a91a.scn"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://scenes/boom_box/mdl_boom_box.glb"
|
||||
dest_files=["res://.godot/imported/mdl_boom_box.glb-2bdf94ac121d2badd92b33bbe527a91a.scn"]
|
||||
|
||||
[params]
|
||||
|
||||
nodes/root_type=""
|
||||
nodes/root_name=""
|
||||
nodes/root_script=null
|
||||
nodes/apply_root_scale=true
|
||||
nodes/root_scale=1.0
|
||||
nodes/import_as_skeleton_bones=false
|
||||
nodes/use_name_suffixes=true
|
||||
nodes/use_node_type_suffixes=true
|
||||
meshes/ensure_tangents=true
|
||||
meshes/generate_lods=false
|
||||
meshes/create_shadow_meshes=true
|
||||
meshes/light_baking=1
|
||||
meshes/lightmap_texel_size=0.2
|
||||
meshes/force_disable_compression=false
|
||||
skins/use_named_skins=true
|
||||
animation/import=true
|
||||
animation/fps=30
|
||||
animation/trimming=false
|
||||
animation/remove_immutable_tracks=true
|
||||
animation/import_rest_as_RESET=false
|
||||
import_script/path=""
|
||||
materials/extract=0
|
||||
materials/extract_format=0
|
||||
materials/extract_path=""
|
||||
_subresources={
|
||||
"materials": {
|
||||
"@MATERIAL:1": {
|
||||
"use_external/enabled": true,
|
||||
"use_external/path": "uid://cjvmf0bl70x6q"
|
||||
},
|
||||
"Material.001": {
|
||||
"use_external/enabled": true,
|
||||
"use_external/fallback_path": "res://scenes/boom_box/mat_boom_box_speaker.tres",
|
||||
"use_external/path": "uid://b7bnfiwxvih3a"
|
||||
},
|
||||
"Material.002": {
|
||||
"use_external/enabled": true,
|
||||
"use_external/fallback_path": "res://materials/metal_2/metal2.tres",
|
||||
"use_external/path": "uid://cjvmf0bl70x6q"
|
||||
}
|
||||
}
|
||||
}
|
||||
gltf/naming_version=2
|
||||
gltf/embedded_image_handling=0
|
||||
75
scenes/boom_box/scn_boom_box.tscn
Normal file
75
scenes/boom_box/scn_boom_box.tscn
Normal file
@@ -0,0 +1,75 @@
|
||||
[gd_scene format=3 uid="uid://1b2ikdanl66b"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://bivtfdl3p1brv" path="res://scenes/boom_box/scr_boom_box.gd" id="1_qft15"]
|
||||
[ext_resource type="Script" uid="uid://dkfswql8ui0bt" path="res://scripts/interact_button.gd" id="4_eavi1"]
|
||||
[ext_resource type="PackedScene" uid="uid://ca1y03riauk7v" path="res://scenes/boom_box/mdl_boom_box.glb" id="5_8jpsw"]
|
||||
[ext_resource type="AudioStream" uid="uid://dknygn5eyuhxt" path="res://audio/aud_shot.wav" id="5_m033a"]
|
||||
|
||||
[sub_resource type="BoxShape3D" id="BoxShape3D_0ebt5"]
|
||||
size = Vector3(3.00441, 0.9920776, 1.2781768)
|
||||
|
||||
[sub_resource type="BoxShape3D" id="BoxShape3D_ikdwj"]
|
||||
size = Vector3(0.8920957, 1.1780555, 0.653507)
|
||||
|
||||
[sub_resource type="AudioStreamRandomizer" id="AudioStreamRandomizer_73g2w"]
|
||||
random_pitch = 1.1
|
||||
streams_count = 1
|
||||
stream_0/stream = ExtResource("5_m033a")
|
||||
|
||||
[sub_resource type="BoxShape3D" id="BoxShape3D_21y4o"]
|
||||
size = Vector3(3.1602442, 1.6259993, 1.007927)
|
||||
|
||||
[node name="CardPrinter" type="StaticBody3D" unique_id=459800869 node_paths=PackedStringArray("button", "button_collider")]
|
||||
script = ExtResource("1_qft15")
|
||||
button = NodePath("StaticBody3D")
|
||||
button_collider = NodePath("StaticBody3D/CollisionShape3D2")
|
||||
|
||||
[node name="CollisionShape3D" type="CollisionShape3D" parent="." unique_id=30960146]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.0007226467, 0.47737724, 0.562555)
|
||||
shape = SubResource("BoxShape3D_0ebt5")
|
||||
|
||||
[node name="boombox" parent="." unique_id=1990632876 instance=ExtResource("5_8jpsw")]
|
||||
transform = Transform3D(-1, 0, -8.742278e-08, 0, 1, 0, 8.742278e-08, 0, -1, 0.03968942, 1.5274034, 0.27377868)
|
||||
|
||||
[node name="StaticBody3D" type="StaticBody3D" parent="." unique_id=427437411]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.847404, 0.610684)
|
||||
collision_layer = 16
|
||||
collision_mask = 0
|
||||
script = ExtResource("4_eavi1")
|
||||
press_cost = 1
|
||||
|
||||
[node name="CollisionShape3D2" type="CollisionShape3D" parent="StaticBody3D" unique_id=914833676]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.11519222, 0.80499697, 0.5172301)
|
||||
shape = SubResource("BoxShape3D_ikdwj")
|
||||
|
||||
[node name="AudioStreamPlayer3D" type="AudioStreamPlayer3D" parent="StaticBody3D" unique_id=2125771228]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.578748, -0.587001)
|
||||
stream = SubResource("AudioStreamRandomizer_73g2w")
|
||||
volume_db = -6.5
|
||||
bus = &"SFX"
|
||||
|
||||
[node name="CSGBox3D3" type="CSGBox3D" parent="." unique_id=1739651585]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.83318865, 0.5436785)
|
||||
size = Vector3(3.01, 0.275, 1.3083398)
|
||||
|
||||
[node name="CSGBox3D4" type="CSGBox3D" parent="." unique_id=1331903082]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.2236495, 0.46450287, 0.9188268)
|
||||
size = Vector3(0.355, 1, 0.37)
|
||||
|
||||
[node name="CSGBox3D5" type="CSGBox3D" parent="." unique_id=792536346]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.2526929, 0.46450287, 0.9501231)
|
||||
size = Vector3(0.355, 1, 0.37)
|
||||
|
||||
[node name="CSGBox3D6" type="CSGBox3D" parent="." unique_id=924404615]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.2410457, 0.46450287, 0.15670347)
|
||||
size = Vector3(0.355, 1, 0.37)
|
||||
|
||||
[node name="CSGBox3D7" type="CSGBox3D" parent="." unique_id=1351624555]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.2410758, 0.46450287, 0.1566062)
|
||||
size = Vector3(0.355, 1, 0.37)
|
||||
|
||||
[node name="CollisionShape3D2" type="CollisionShape3D" parent="." unique_id=1288587195]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.0032413006, 1.7864776, 0.59116006)
|
||||
shape = SubResource("BoxShape3D_21y4o")
|
||||
|
||||
[connection signal="button_interacted" from="StaticBody3D" to="." method="_on_static_body_3d_button_interacted"]
|
||||
78
scenes/boom_box/scr_boom_box.gd
Normal file
78
scenes/boom_box/scr_boom_box.gd
Normal file
@@ -0,0 +1,78 @@
|
||||
class_name BoomBox extends StaticBody3D
|
||||
|
||||
@export var button: InteractButton
|
||||
@export var button_collider: CollisionShape3D
|
||||
@export var cassette_selection_menu: PackedScene
|
||||
|
||||
var cassettes_generated: int = 0
|
||||
var reply_player: Hero
|
||||
var spawned_cassettes: Array[CassetteItem] = []
|
||||
|
||||
|
||||
func _ready() -> void:
|
||||
button.hover_text = tr("PROMPT_RADIO_INTERACT")
|
||||
|
||||
|
||||
func generate_rarity() -> int:
|
||||
var weight_total: int = 0
|
||||
for rarity: String in Data.Rarity:
|
||||
weight_total += Data.rarity_weights[rarity]
|
||||
|
||||
var generated_rarity: int = NoiseRandom.randi_in_range(4 * cassettes_generated, 0, weight_total)
|
||||
cassettes_generated += 1
|
||||
var decided_rarity: int = 0
|
||||
|
||||
for rarity: String in Data.Rarity:
|
||||
weight_total -= Data.rarity_weights[rarity]
|
||||
if generated_rarity >= weight_total:
|
||||
decided_rarity = Data.Rarity[rarity]
|
||||
break
|
||||
return decided_rarity
|
||||
|
||||
|
||||
func find_cassettes(role: Cassette.Role, rarity: Data.Rarity, allowed_cassettes: Array[Cassette]) -> void:
|
||||
var decided_rarity: int = rarity
|
||||
if rarity == null:
|
||||
decided_rarity = generate_rarity()
|
||||
var cassette_choices: Array[Cassette] = allowed_cassettes
|
||||
if !cassette_choices:
|
||||
cassette_choices = Cassette.get_role_cassettes(role)
|
||||
var cassettes: Array[Cassette] = []
|
||||
var valid_cassettes_found: bool = false
|
||||
var testing_rarity: int = decided_rarity
|
||||
while !valid_cassettes_found:
|
||||
for cassette: Cassette in cassette_choices:
|
||||
if cassette.rarity == testing_rarity:
|
||||
cassettes.append(cassette)
|
||||
if cassettes.size() != 0:
|
||||
valid_cassettes_found = true
|
||||
testing_rarity -= 1
|
||||
if testing_rarity < 0:
|
||||
testing_rarity = 4
|
||||
if testing_rarity == decided_rarity:
|
||||
print("This character doesn't have any cassettes!")
|
||||
return
|
||||
var menu: ChooseCassetteScreen = cassette_selection_menu.instantiate() as ChooseCassetteScreen
|
||||
menu.add_cassettes(cassettes)
|
||||
menu.cassette_chosen.connect(output_cassette)
|
||||
reply_player.pause()
|
||||
reply_player.hud.add_child(menu)
|
||||
|
||||
|
||||
func output_cassette(cassette: Cassette) -> void:
|
||||
reply_player.add_cassette(cassette)
|
||||
reply_player.unpause()
|
||||
reply_player = null
|
||||
button_collider.disabled = false
|
||||
$StaticBody3D/AudioStreamPlayer3D.play()
|
||||
|
||||
|
||||
func _on_static_body_3d_button_interacted(_value: int, reply: Hero) -> void:
|
||||
reply_player = reply
|
||||
if reply.blank_cassettes >= 1:
|
||||
reply.blank_cassettes -= 1
|
||||
else:
|
||||
return
|
||||
button_collider.disabled = true
|
||||
$StaticBody3D/AudioStreamPlayer3D.play()
|
||||
find_cassettes(reply.hero_class.role, reply.game_manager.level_config.waves[reply.game_manager.wave - 1].station, reply.game_manager.level_config.allowed_cassettes)
|
||||
1
scenes/boom_box/scr_boom_box.gd.uid
Normal file
1
scenes/boom_box/scr_boom_box.gd.uid
Normal file
@@ -0,0 +1 @@
|
||||
uid://bivtfdl3p1brv
|
||||
BIN
scenes/boom_box/tex_boom_box_speaker.png
Normal file
BIN
scenes/boom_box/tex_boom_box_speaker.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 10 KiB |
44
scenes/boom_box/tex_boom_box_speaker.png.import
Normal file
44
scenes/boom_box/tex_boom_box_speaker.png.import
Normal file
@@ -0,0 +1,44 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://dtdp1y7dvcook"
|
||||
path.s3tc="res://.godot/imported/tex_boom_box_speaker.png-f3b3d36032c5939cbe8904e586d3ecdf.s3tc.ctex"
|
||||
metadata={
|
||||
"imported_formats": ["s3tc_bptc"],
|
||||
"vram_texture": true
|
||||
}
|
||||
generator_parameters={
|
||||
"md5": "77c6adf66e10f09a997e096353d67627"
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://scenes/boom_box/tex_boom_box_speaker.png"
|
||||
dest_files=["res://.godot/imported/tex_boom_box_speaker.png-f3b3d36032c5939cbe8904e586d3ecdf.s3tc.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=2
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/uastc_level=0
|
||||
compress/rdo_quality_loss=0.0
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=true
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/channel_remap/red=0
|
||||
process/channel_remap/green=1
|
||||
process/channel_remap/blue=2
|
||||
process/channel_remap/alpha=3
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=0
|
||||
Reference in New Issue
Block a user