mirror of
https://github.com/Relintai/broken_seals.git
synced 2024-11-10 08:42:11 +01:00
Data Part 3.
This commit is contained in:
parent
7bbe78a1f7
commit
72d9502698
3
game/data/model_blocks/1_test.tres
Normal file
3
game/data/model_blocks/1_test.tres
Normal file
@ -0,0 +1,3 @@
|
||||
[gd_resource type="PropData" format=2]
|
||||
|
||||
[resource]
|
BIN
game/data/models/Material_003.material
Normal file
BIN
game/data/models/Material_003.material
Normal file
Binary file not shown.
BIN
game/data/models/armature.blend
Normal file
BIN
game/data/models/armature.blend
Normal file
Binary file not shown.
7846
game/data/models/armature.dae
Normal file
7846
game/data/models/armature.dae
Normal file
File diff suppressed because one or more lines are too long
1062
game/data/models/armature.dae.import
Normal file
1062
game/data/models/armature.dae.import
Normal file
File diff suppressed because it is too large
Load Diff
72
game/data/models/armature.tscn
Normal file
72
game/data/models/armature.tscn
Normal file
@ -0,0 +1,72 @@
|
||||
[gd_scene load_steps=4 format=2]
|
||||
|
||||
[ext_resource path="res://data/models/armature.dae" type="PackedScene" id=1]
|
||||
[ext_resource path="res://data/materials/Character.material" type="Material" id=2]
|
||||
|
||||
[sub_resource type="Skin" id=1]
|
||||
bind_count = 29
|
||||
bind/0/bone = 0
|
||||
bind/0/pose = Transform( 1, 0, 0, 0, 0, 1, 0, -1, 0, 3.23883e-05, -0.000216131, 0 )
|
||||
bind/1/bone = 1
|
||||
bind/1/pose = Transform( 1, 0, 0, 0, 4.71856e-07, 1, 0, -1, 4.71856e-07, 0, -3.6933e-07, 0.782716 )
|
||||
bind/2/bone = 2
|
||||
bind/2/pose = Transform( 0.999745, -0.00621639, 0.0217112, -0.0215977, 0.0177767, 0.999609, -0.00659991, -0.999823, 0.0176379, 0.0051749, -0.0147984, 0.832313 )
|
||||
bind/3/bone = 3
|
||||
bind/3/pose = Transform( 1, -9.35914e-10, 1.36474e-09, -3.07044e-09, -0.00336038, 0.999994, 1.03179e-11, -0.999994, -0.00336038, -0.00103352, 0.00608555, 0.989014 )
|
||||
bind/4/bone = 4
|
||||
bind/4/pose = Transform( 1, 6.39974e-07, -8.89245e-07, 8.80181e-07, 0.0113912, 0.999935, 6.50979e-07, -0.999935, 0.0113912, -0.00103425, -0.0106821, 1.13661 )
|
||||
bind/5/bone = 5
|
||||
bind/5/pose = Transform( 1, -0.000269678, 0.00012004, -9.65309e-05, 0.0855512, 0.996334, -0.000278958, -0.996334, 0.0855512, -0.000675752, -0.108904, 1.31976 )
|
||||
bind/6/bone = 6
|
||||
bind/6/pose = Transform( 1, 8.17762e-05, -0.000263342, 0.000258866, 0.0505959, 0.998719, 9.49964e-05, -0.998719, 0.0505959, -0.00116505, -0.0605734, 1.38071 )
|
||||
bind/7/bone = 7
|
||||
bind/7/pose = Transform( 0.0070114, 0.0774384, 0.996973, 0.0774383, 0.993961, -0.0777491, -0.996973, 0.077749, 0.000972474, -0.0888093, -1.27436, -0.0663258 )
|
||||
bind/8/bone = 8
|
||||
bind/8/pose = Transform( -0.0450563, 0.0440544, 0.998013, 0.0597335, 0.997358, -0.0413288, -0.997197, 0.0577527, -0.0475687, -0.0382999, -1.27552, 0.0819168 )
|
||||
bind/9/bone = 9
|
||||
bind/9/pose = Transform( 0.018514, 0.0309238, 0.999351, 0.0309247, 0.999026, -0.0314866, -0.99935, 0.0314876, 0.0175398, -0.0477363, -1.26588, 0.367749 )
|
||||
bind/10/bone = 10
|
||||
bind/10/pose = Transform( -0.0261653, 0.130666, -0.991081, 0.130703, -0.982463, -0.132981, -0.991077, -0.133017, 0.00862804, -0.14878, 1.14002, 0.808164 )
|
||||
bind/11/bone = 11
|
||||
bind/11/pose = Transform( -0.475656, 0.00430243, 0.879621, 0.00321754, 0.99999, -0.00315133, -0.879625, 0.00133117, -0.475665, 0.288726, -1.25067, 0.663522 )
|
||||
bind/12/bone = 12
|
||||
bind/12/pose = Transform( -0.000220652, -0.000277932, 1, -0.00033695, 1, 0.000277874, -1, -0.000336981, -0.000220243, -0.0736739, -1.24826, 0.755929 )
|
||||
bind/13/bone = 13
|
||||
bind/13/pose = Transform( 0.00944621, 0.00316354, 0.99995, 0.0031337, 0.99999, -0.00319319, -0.99995, 0.00316359, 0.00943633, -0.00736828, -1.26387, 0.752371 )
|
||||
bind/14/bone = 14
|
||||
bind/14/pose = Transform( -0.00970714, 0.0022499, 0.99995, 0.00216275, 0.999995, -0.00222893, -0.99995, 0.00214089, -0.00971184, 0.0090317, -1.2631, 0.793296 )
|
||||
bind/15/bone = 15
|
||||
bind/15/pose = Transform( 0.00658962, -0.0806899, -0.996717, -0.0806899, 0.993446, -0.0809585, 0.996717, 0.0809585, 3.55672e-05, 0.0929316, -1.27391, -0.0704344 )
|
||||
bind/16/bone = 16
|
||||
bind/16/pose = Transform( -0.0392234, -0.0752374, -0.996394, -0.0366487, 0.996599, -0.0738102, 0.998558, 0.0336215, -0.0418473, 0.0788543, -1.27095, 0.113026 )
|
||||
bind/17/bone = 17
|
||||
bind/17/pose = Transform( 0.0229175, -0.0602779, -0.997918, -0.0474641, 0.99699, -0.0613119, 0.99861, 0.0487704, 0.0199874, 0.0853213, -1.27585, 0.345435 )
|
||||
bind/18/bone = 18
|
||||
bind/18/pose = Transform( 0.0297753, 0.0829781, -0.996106, 0.0950469, 0.991797, 0.0854602, 0.995027, -0.0972214, 0.0216442, -0.0890907, -1.17633, 0.766162 )
|
||||
bind/19/bone = 19
|
||||
bind/19/pose = Transform( -0.487887, -0.0560933, -0.871102, -0.0378187, 0.998354, -0.043106, 0.872087, 0.0119131, -0.489205, -0.236206, -1.27171, 0.644798 )
|
||||
bind/20/bone = 20
|
||||
bind/20/pose = Transform( 0.0047264, -0.0569537, -0.998365, -0.043808, 0.997407, -0.0571064, 0.999029, 0.0440063, 0.00221903, 0.146303, -1.27405, 0.699947 )
|
||||
bind/21/bone = 21
|
||||
bind/21/pose = Transform( -0.00289687, -0.0125321, -0.999917, 0.000557556, 0.999921, -0.0125339, 0.999996, -0.00059382, -0.00288967, 0.00642652, -1.25875, 0.757343 )
|
||||
bind/22/bone = 22
|
||||
bind/22/pose = Transform( 0.00643235, -0.0318082, -0.999473, -0.0188087, 0.999313, -0.0319243, 0.999802, 0.0190041, 0.00582965, 0.0381318, -1.27355, 0.772322 )
|
||||
bind/23/bone = 23
|
||||
bind/23/pose = Transform( 0.997079, 0.0643905, 0.0415419, 0.0406052, 0.0156588, -0.999053, -0.0649775, 0.997802, 0.0129985, -0.124325, -0.0162939, -0.795408 )
|
||||
bind/24/bone = 24
|
||||
bind/24/pose = Transform( 0.998221, 0.051846, 0.0300808, 0.0276995, 0.0458923, -0.998563, -0.053149, 0.9976, 0.0443741, -0.118691, -0.0290485, -0.456133 )
|
||||
bind/25/bone = 25
|
||||
bind/25/pose = Transform( 0.998432, 0.0379936, -0.0415485, 0.0267438, -0.969472, -0.243743, -0.0495496, 0.242244, -0.968951, -0.119631, 0.0441252, -0.0300586 )
|
||||
bind/26/bone = 26
|
||||
bind/26/pose = Transform( 0.997517, -0.0648327, -0.0280861, -0.0272034, 0.0143568, -0.999527, 0.0652032, 0.997793, 0.0125575, 0.124711, -0.0142854, -0.795383 )
|
||||
bind/27/bone = 27
|
||||
bind/27/pose = Transform( 0.998496, -0.0523874, -0.0171451, -0.0147558, 0.0455334, -0.998855, 0.0531055, 0.997589, 0.0446915, 0.119101, -0.0275243, -0.456326 )
|
||||
bind/28/bone = 28
|
||||
bind/28/pose = Transform( 0.997795, 0.00782495, 0.066146, 0.0235858, -0.970258, -0.240925, 0.0623004, 0.241949, -0.968288, 0.117675, 0.0501108, -0.0285344 )
|
||||
|
||||
[node name="armature" instance=ExtResource( 1 )]
|
||||
|
||||
[node name="Male" parent="Armature/Skeleton" index="0"]
|
||||
visible = false
|
||||
skin = SubResource( 1 )
|
||||
material/0 = ExtResource( 2 )
|
309
game/data/models/armature_model_orig_v2.tscn
Normal file
309
game/data/models/armature_model_orig_v2.tscn
Normal file
File diff suppressed because one or more lines are too long
BIN
game/data/models/armature_old.blend
Normal file
BIN
game/data/models/armature_old.blend
Normal file
Binary file not shown.
BIN
game/data/models/ttt.png
Normal file
BIN
game/data/models/ttt.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.9 KiB |
34
game/data/models/ttt.png.import
Normal file
34
game/data/models/ttt.png.import
Normal file
@ -0,0 +1,34 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="StreamTexture"
|
||||
path="res://.import/ttt.png-0185682edec66eea5f16d7601fab19c5.stex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://data/models/ttt.png"
|
||||
dest_files=[ "res://.import/ttt.png-0185682edec66eea5f16d7601fab19c5.stex" ]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_mode=0
|
||||
compress/bptc_ldr=0
|
||||
compress/normal_map=2
|
||||
flags/repeat=0
|
||||
flags/filter=false
|
||||
flags/mipmaps=false
|
||||
flags/anisotropic=false
|
||||
flags/srgb=1
|
||||
process/fix_alpha_border=false
|
||||
process/premult_alpha=false
|
||||
process/HDR_as_SRGB=false
|
||||
process/invert_color=false
|
||||
stream=false
|
||||
size_limit=0
|
||||
detect_3d=false
|
||||
svg/scale=1.0
|
9
game/data/planets/1_test.tres
Normal file
9
game/data/planets/1_test.tres
Normal file
@ -0,0 +1,9 @@
|
||||
[gd_resource type="PlanetData" load_steps=3 format=2]
|
||||
|
||||
[ext_resource path="res://data/biomes/1_test.tres" type="BiomeData" id=1]
|
||||
[ext_resource path="res://scripts/planets/simple_planet.gd" type="Script" id=2]
|
||||
|
||||
[resource]
|
||||
id = 1
|
||||
target_script = ExtResource( 2 )
|
||||
biome_datas = [ ExtResource( 1 ) ]
|
9
game/data/planets/2_tdungeon.tres
Normal file
9
game/data/planets/2_tdungeon.tres
Normal file
@ -0,0 +1,9 @@
|
||||
[gd_resource type="PlanetData" load_steps=3 format=2]
|
||||
|
||||
[ext_resource path="res://data/biomes/2_tdungb.tres" type="BiomeData" id=1]
|
||||
[ext_resource path="res://scripts/planets/dung_simple_planet.gd" type="Script" id=2]
|
||||
|
||||
[resource]
|
||||
id = 2
|
||||
target_script = ExtResource( 2 )
|
||||
biome_datas = [ ExtResource( 1 ) ]
|
17
game/data/player_character_data/1_naturalist.tres
Normal file
17
game/data/player_character_data/1_naturalist.tres
Normal file
@ -0,0 +1,17 @@
|
||||
[gd_resource type="EntityData" load_steps=5 format=2]
|
||||
|
||||
[ext_resource path="res://data/entity_classes/1_naturalist.tres" type="EntityClassData" id=1]
|
||||
[ext_resource path="res://scripts/entities/EntityDataGD.gd" type="Script" id=2]
|
||||
[ext_resource path="res://data/crafting/1_test_craft.tres" type="CraftRecipe" id=3]
|
||||
[ext_resource path="res://data/crafting/2_chest_of_the_infinite_wisdom.tres" type="CraftRecipe" id=4]
|
||||
|
||||
[resource]
|
||||
resource_name = "Naturalist"
|
||||
id = 1
|
||||
entity_type = 4
|
||||
entity_controller = 1
|
||||
text_name = "Naturalist"
|
||||
bag_size = 24
|
||||
entity_class_data = ExtResource( 1 )
|
||||
craft_recipes = [ ExtResource( 3 ), ExtResource( 4 ) ]
|
||||
script = ExtResource( 2 )
|
12
game/data/player_character_data/2_berserker.tres
Normal file
12
game/data/player_character_data/2_berserker.tres
Normal file
@ -0,0 +1,12 @@
|
||||
[gd_resource type="EntityData" load_steps=3 format=2]
|
||||
|
||||
[ext_resource path="res://data/entity_classes/2_berserker.tres" type="EntityClassData" id=1]
|
||||
[ext_resource path="res://scripts/entities/EntityDataGD.gd" type="Script" id=2]
|
||||
|
||||
[resource]
|
||||
id = 2
|
||||
entity_type = 4
|
||||
entity_controller = 1
|
||||
bag_size = 24
|
||||
entity_class_data = ExtResource( 1 )
|
||||
script = ExtResource( 2 )
|
3
game/data/prop_models/test.tscn
Normal file
3
game/data/prop_models/test.tscn
Normal file
@ -0,0 +1,3 @@
|
||||
[gd_scene format=2]
|
||||
|
||||
[node name="Spatial" type="Spatial"]
|
3
game/data/props/1_test.tres
Normal file
3
game/data/props/1_test.tres
Normal file
@ -0,0 +1,3 @@
|
||||
[gd_resource type="PropData" format=2]
|
||||
|
||||
[resource]
|
20
game/data/shaders/1_charactershader.tres
Normal file
20
game/data/shaders/1_charactershader.tres
Normal file
@ -0,0 +1,20 @@
|
||||
[gd_resource type="Shader" format=2]
|
||||
|
||||
[resource]
|
||||
code = "shader_type spatial;
|
||||
//render_mode unshaded, cull_disabled;
|
||||
//render_mode unshaded;
|
||||
//render_mode specular_toon;
|
||||
render_mode vertex_lighting;
|
||||
render_mode shadows_disabled;
|
||||
//render_mode ambient_light_disabled;
|
||||
|
||||
void fragment() {
|
||||
METALLIC = 0.0;
|
||||
ROUGHNESS = 0.01;
|
||||
ALBEDO = vec3(0.1, 0.3, 0.5);
|
||||
}
|
||||
|
||||
void light() {
|
||||
DIFFUSE_LIGHT += dot(NORMAL, LIGHT) * ATTENUATION * ALBEDO;
|
||||
}"
|
59
game/data/ship_parts/1_wall_simple.tres
Normal file
59
game/data/ship_parts/1_wall_simple.tres
Normal file
@ -0,0 +1,59 @@
|
||||
[gd_resource type="PropData" load_steps=12 format=2]
|
||||
|
||||
[ext_resource path="res://data/basic_models/ship_base.dae" type="MeshDataResource" id=1]
|
||||
[ext_resource path="res://data/ship_parts/ship_simple.png" type="Texture" id=2]
|
||||
|
||||
[sub_resource type="PropDataMesh" id=1]
|
||||
transform = Transform( 0.5, 0, 0, 0, 0.5, 0, 0, 0, 1, 0.5, -0.5, 0 )
|
||||
mesh = ExtResource( 1 )
|
||||
texture = ExtResource( 2 )
|
||||
snap_to_mesh = false
|
||||
|
||||
[sub_resource type="PropDataMesh" id=2]
|
||||
transform = Transform( 0.5, 0, 0, 0, 0.5, 0, 0, 0, 1, -0.5, -0.5, 0 )
|
||||
mesh = ExtResource( 1 )
|
||||
texture = ExtResource( 2 )
|
||||
snap_to_mesh = false
|
||||
|
||||
[sub_resource type="PropDataMesh" id=3]
|
||||
transform = Transform( 0.5, 0, 0, 0, 0.5, 0, 0, 0, 1, 1.5, -0.5, 0 )
|
||||
mesh = ExtResource( 1 )
|
||||
texture = ExtResource( 2 )
|
||||
snap_to_mesh = false
|
||||
|
||||
[sub_resource type="PropDataMesh" id=4]
|
||||
transform = Transform( 0.5, 0, 0, 0, 0.5, 0, 0, 0, 1, -1.5, -0.5, 0 )
|
||||
mesh = ExtResource( 1 )
|
||||
texture = ExtResource( 2 )
|
||||
snap_to_mesh = false
|
||||
|
||||
[sub_resource type="PropDataMesh" id=5]
|
||||
transform = Transform( 0.5, 0, 0, 0, 0.5, 0, 0, 0, 1, -1.5, 0.5, 0 )
|
||||
mesh = ExtResource( 1 )
|
||||
texture = ExtResource( 2 )
|
||||
snap_to_mesh = false
|
||||
|
||||
[sub_resource type="PropDataMesh" id=6]
|
||||
transform = Transform( 0.5, 0, 0, 0, 0.5, 0, 0, 0, 1, -0.5, 0.5, 0 )
|
||||
mesh = ExtResource( 1 )
|
||||
texture = ExtResource( 2 )
|
||||
snap_to_mesh = false
|
||||
|
||||
[sub_resource type="PropDataMesh" id=7]
|
||||
transform = Transform( 0.5, 0, 0, 0, 0.5, 0, 0, 0, 1, 0.5, 0.5, 0 )
|
||||
mesh = ExtResource( 1 )
|
||||
texture = ExtResource( 2 )
|
||||
snap_to_mesh = false
|
||||
|
||||
[sub_resource type="PropDataMesh" id=8]
|
||||
transform = Transform( 0.5, 0, 0, 0, 0.5, 0, 0, 0, 1, 1.5, 0.5, 0 )
|
||||
mesh = ExtResource( 1 )
|
||||
texture = ExtResource( 2 )
|
||||
snap_to_mesh = false
|
||||
|
||||
[sub_resource type="PropDataLight" id=9]
|
||||
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 2.55548 )
|
||||
light_color = Color( 0.223529, 0.921569, 0, 1 )
|
||||
|
||||
[resource]
|
||||
props = [ SubResource( 1 ), SubResource( 2 ), SubResource( 3 ), SubResource( 4 ), SubResource( 5 ), SubResource( 6 ), SubResource( 7 ), SubResource( 8 ), SubResource( 9 ) ]
|
BIN
game/data/ship_parts/ship_base.blend
Normal file
BIN
game/data/ship_parts/ship_base.blend
Normal file
Binary file not shown.
31
game/data/ships/1_basic_ship.tres
Normal file
31
game/data/ships/1_basic_ship.tres
Normal file
@ -0,0 +1,31 @@
|
||||
[gd_resource type="PropData" load_steps=8 format=2]
|
||||
|
||||
[ext_resource path="res://data/ship_parts/1_wall_simple.tres" type="PropData" id=1]
|
||||
|
||||
[sub_resource type="PropDataProp" id=1]
|
||||
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0 )
|
||||
prop = ExtResource( 1 )
|
||||
|
||||
[sub_resource type="PropDataProp" id=2]
|
||||
transform = Transform( -4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, 2, 1, -2 )
|
||||
prop = ExtResource( 1 )
|
||||
|
||||
[sub_resource type="PropDataProp" id=3]
|
||||
transform = Transform( -1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, -2.38419e-07, 1, -4 )
|
||||
prop = ExtResource( 1 )
|
||||
|
||||
[sub_resource type="PropDataProp" id=4]
|
||||
transform = Transform( 1.31134e-07, 0, -1, 0, 1, 0, 1, 0, 1.31134e-07, -2, 1, -2 )
|
||||
prop = ExtResource( 1 )
|
||||
|
||||
[sub_resource type="PropDataProp" id=5]
|
||||
transform = Transform( 3.55271e-15, 1, -2.98023e-08, -1.31134e-07, 2.98023e-08, 1, 1, 0, 1.31134e-07, -1, 2, -2 )
|
||||
prop = ExtResource( 1 )
|
||||
|
||||
[sub_resource type="PropDataProp" id=6]
|
||||
transform = Transform( 3.55271e-15, 1, -2.98023e-08, -1.31134e-07, 2.98023e-08, 1, 1, 0, 1.31134e-07, 1, 2, -2 )
|
||||
prop = ExtResource( 1 )
|
||||
|
||||
[resource]
|
||||
snap_to_mesh = true
|
||||
props = [ SubResource( 1 ), SubResource( 2 ), SubResource( 3 ), SubResource( 4 ), SubResource( 5 ), SubResource( 6 ) ]
|
27
game/data/spell_effects/enchanter/Arrow.tscn
Normal file
27
game/data/spell_effects/enchanter/Arrow.tscn
Normal file
@ -0,0 +1,27 @@
|
||||
[gd_scene load_steps=5 format=2]
|
||||
|
||||
[sub_resource type="SpatialMaterial" id=1]
|
||||
albedo_color = Color( 0.635294, 0.462745, 0.239216, 1 )
|
||||
|
||||
[sub_resource type="CubeMesh" id=2]
|
||||
material = SubResource( 1 )
|
||||
size = Vector3( 1, 0.01, 0.01 )
|
||||
|
||||
[sub_resource type="SpatialMaterial" id=3]
|
||||
albedo_color = Color( 0.866667, 0.917647, 0.984314, 1 )
|
||||
|
||||
[sub_resource type="PrismMesh" id=4]
|
||||
material = SubResource( 3 )
|
||||
size = Vector3( 0.01, 0.01, 0.01 )
|
||||
|
||||
[node name="Arrow" type="Spatial"]
|
||||
|
||||
[node name="MeshInstance" type="MeshInstance" parent="."]
|
||||
transform = Transform( -1.62921e-07, 0, 1, 0, 1, 0, -1, 0, -1.62921e-07, 0, 0, 0 )
|
||||
mesh = SubResource( 2 )
|
||||
material/0 = null
|
||||
|
||||
[node name="MeshInstance2" type="MeshInstance" parent="."]
|
||||
transform = Transform( 2.65431e-14, -1.62921e-07, 1, -1, -1.62921e-07, 0, 1.62921e-07, -1, -1.62921e-07, 0, 0, -0.504589 )
|
||||
mesh = SubResource( 4 )
|
||||
material/0 = null
|
38
game/data/spell_effects/nature/AOSCastFinish.tscn
Normal file
38
game/data/spell_effects/nature/AOSCastFinish.tscn
Normal file
@ -0,0 +1,38 @@
|
||||
[gd_scene load_steps=4 format=2]
|
||||
|
||||
[ext_resource path="res://data/spell_effects/textures/small_star.png" type="Texture" id=1]
|
||||
|
||||
|
||||
[sub_resource type="SpatialMaterial" id=1]
|
||||
flags_transparent = true
|
||||
flags_unshaded = true
|
||||
flags_do_not_receive_shadows = true
|
||||
vertex_color_use_as_albedo = true
|
||||
params_specular_mode = 4
|
||||
params_blend_mode = 1
|
||||
params_cull_mode = 2
|
||||
params_billboard_mode = 3
|
||||
particles_anim_h_frames = 1
|
||||
particles_anim_v_frames = 1
|
||||
particles_anim_loop = false
|
||||
albedo_texture = ExtResource( 1 )
|
||||
|
||||
[sub_resource type="QuadMesh" id=2]
|
||||
material = SubResource( 1 )
|
||||
|
||||
[node name="AOSCastFinish" type="CPUParticles"]
|
||||
emitting = false
|
||||
amount = 4
|
||||
lifetime = 4.0
|
||||
one_shot = true
|
||||
mesh = SubResource( 2 )
|
||||
emission_shape = 1
|
||||
emission_sphere_radius = 0.1
|
||||
gravity = Vector3( 0, 0, 0 )
|
||||
angular_velocity = 234.0
|
||||
angular_velocity_random = 0.09
|
||||
linear_accel = 0.1
|
||||
linear_accel_random = 0.1
|
||||
scale_amount = 0.7
|
||||
color = Color( 0.0352941, 0.286275, 0.0823529, 1 )
|
||||
hue_variation = 0.13
|
48
game/data/spell_effects/nature/AmplifyPain.tscn
Normal file
48
game/data/spell_effects/nature/AmplifyPain.tscn
Normal file
@ -0,0 +1,48 @@
|
||||
[gd_scene load_steps=5 format=2]
|
||||
|
||||
[ext_resource path="res://data/spell_effects/textures/star.png" type="Texture" id=1]
|
||||
|
||||
|
||||
[sub_resource type="SpatialMaterial" id=1]
|
||||
flags_transparent = true
|
||||
flags_unshaded = true
|
||||
vertex_color_use_as_albedo = true
|
||||
params_specular_mode = 4
|
||||
params_blend_mode = 1
|
||||
params_billboard_mode = 3
|
||||
particles_anim_h_frames = 1
|
||||
particles_anim_v_frames = 1
|
||||
particles_anim_loop = false
|
||||
albedo_color = Color( 0.0627451, 0.741176, 0.619608, 1 )
|
||||
albedo_texture = ExtResource( 1 )
|
||||
|
||||
[sub_resource type="QuadMesh" id=2]
|
||||
material = SubResource( 1 )
|
||||
|
||||
[sub_resource type="Animation" id=3]
|
||||
resource_name = "Anim"
|
||||
length = 0.3
|
||||
step = 0.01
|
||||
tracks/0/type = "value"
|
||||
tracks/0/path = NodePath("MeshInstance:scale")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/keys = {
|
||||
"times": PoolRealArray( 0, 0.08, 0.09, 0.3 ),
|
||||
"transitions": PoolRealArray( 5.09824, 1, 1.31951, 1 ),
|
||||
"update": 0,
|
||||
"values": [ Vector3( 0.1, 0.1, 0.1 ), Vector3( 1, 1, 1 ), Vector3( 1, 1, 1 ), Vector3( 0.1, 0.1, 0.1 ) ]
|
||||
}
|
||||
|
||||
[node name="AmplifyPain" type="Spatial"]
|
||||
|
||||
[node name="MeshInstance" type="MeshInstance" parent="."]
|
||||
transform = Transform( 0.1, 0, 0, 0, 0.1, 0, 0, 0, 0.1, 0, 0, 0 )
|
||||
mesh = SubResource( 2 )
|
||||
material/0 = null
|
||||
|
||||
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
|
||||
autoplay = "Anim"
|
||||
anims/Anim = SubResource( 3 )
|
71
game/data/spell_effects/nature/NatureCast.tscn
Normal file
71
game/data/spell_effects/nature/NatureCast.tscn
Normal file
@ -0,0 +1,71 @@
|
||||
[gd_scene load_steps=7 format=2]
|
||||
|
||||
[ext_resource path="res://data/spell_effects/textures/main_texture.png" type="Texture" id=1]
|
||||
[ext_resource path="res://data/spell_effects/textures/big_glow.png" type="Texture" id=2]
|
||||
|
||||
|
||||
[sub_resource type="SpatialMaterial" id=1]
|
||||
flags_transparent = true
|
||||
flags_unshaded = true
|
||||
vertex_color_use_as_albedo = true
|
||||
params_specular_mode = 4
|
||||
params_blend_mode = 1
|
||||
params_cull_mode = 2
|
||||
params_billboard_mode = 3
|
||||
particles_anim_h_frames = 1
|
||||
particles_anim_v_frames = 1
|
||||
particles_anim_loop = false
|
||||
albedo_texture = ExtResource( 1 )
|
||||
|
||||
[sub_resource type="QuadMesh" id=2]
|
||||
material = SubResource( 1 )
|
||||
size = Vector2( 0.1, 0.1 )
|
||||
|
||||
[sub_resource type="SpatialMaterial" id=3]
|
||||
flags_transparent = true
|
||||
flags_unshaded = true
|
||||
vertex_color_use_as_albedo = true
|
||||
params_specular_mode = 4
|
||||
params_blend_mode = 1
|
||||
params_cull_mode = 2
|
||||
params_billboard_mode = 1
|
||||
albedo_color = Color( 0.027451, 0.537255, 0.317647, 1 )
|
||||
albedo_texture = ExtResource( 2 )
|
||||
|
||||
[sub_resource type="QuadMesh" id=4]
|
||||
material = SubResource( 3 )
|
||||
size = Vector2( 0.3, 0.3 )
|
||||
|
||||
[node name="NatureCast" type="Spatial"]
|
||||
|
||||
[node name="CPUParticles" type="CPUParticles" parent="."]
|
||||
amount = 5
|
||||
lifetime = 0.29
|
||||
explosiveness = 0.08
|
||||
randomness = 0.77
|
||||
lifetime_randomness = 1.0
|
||||
local_coords = false
|
||||
mesh = SubResource( 2 )
|
||||
emission_shape = 1
|
||||
emission_sphere_radius = 0.1
|
||||
direction = Vector3( 1, 1, 1 )
|
||||
spread = 180.0
|
||||
gravity = Vector3( 0, -9, 0 )
|
||||
initial_velocity = 1.0
|
||||
initial_velocity_random = 1.0
|
||||
angular_velocity = 397.64
|
||||
angular_velocity_random = 0.2
|
||||
radial_accel = 1.0
|
||||
tangential_accel = 6.9
|
||||
tangential_accel_random = 0.21
|
||||
damping = 6.54
|
||||
damping_random = 0.5
|
||||
angle = 426.5
|
||||
angle_random = 1.0
|
||||
scale_amount = 0.3
|
||||
scale_amount_random = 1.0
|
||||
color = Color( 0.0901961, 0.501961, 0.247059, 1 )
|
||||
|
||||
[node name="MeshInstance" type="MeshInstance" parent="."]
|
||||
mesh = SubResource( 4 )
|
||||
material/0 = null
|
95
game/data/spell_effects/nature/NautreSwiftness.tscn
Normal file
95
game/data/spell_effects/nature/NautreSwiftness.tscn
Normal file
@ -0,0 +1,95 @@
|
||||
[gd_scene load_steps=7 format=2]
|
||||
|
||||
[ext_resource path="res://data/spell_effects/textures/arrows.png" type="Texture" id=1]
|
||||
|
||||
[sub_resource type="SpatialMaterial" id=1]
|
||||
flags_unshaded = true
|
||||
vertex_color_use_as_albedo = true
|
||||
params_specular_mode = 4
|
||||
params_blend_mode = 1
|
||||
params_cull_mode = 2
|
||||
params_billboard_mode = 3
|
||||
particles_anim_h_frames = 1
|
||||
particles_anim_v_frames = 1
|
||||
particles_anim_loop = false
|
||||
|
||||
[sub_resource type="QuadMesh" id=2]
|
||||
material = SubResource( 1 )
|
||||
size = Vector2( 0.02, 0.02 )
|
||||
|
||||
[sub_resource type="SpatialMaterial" id=3]
|
||||
flags_transparent = true
|
||||
flags_unshaded = true
|
||||
params_specular_mode = 4
|
||||
params_blend_mode = 1
|
||||
params_cull_mode = 2
|
||||
albedo_color = Color( 0.0470588, 0.898039, 0.380392, 0.435294 )
|
||||
albedo_texture = ExtResource( 1 )
|
||||
|
||||
[sub_resource type="QuadMesh" id=4]
|
||||
material = SubResource( 3 )
|
||||
size = Vector2( 0.8, 0.8 )
|
||||
|
||||
[sub_resource type="Animation" id=5]
|
||||
length = 2.0
|
||||
loop = true
|
||||
tracks/0/type = "value"
|
||||
tracks/0/path = NodePath("MeshInstance:scale")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/keys = {
|
||||
"times": PoolRealArray( 0, 0.5, 1, 1.49, 2 ),
|
||||
"transitions": PoolRealArray( 1, 1, 1, 1, 1 ),
|
||||
"update": 0,
|
||||
"values": [ Vector3( 0.8, 0.8, 0.8 ), Vector3( 1, 1, 1 ), Vector3( 0.8, 0.8, 0.8 ), Vector3( 1, 1, 1 ), Vector3( 0.8, 0.8, 0.8 ) ]
|
||||
}
|
||||
tracks/1/type = "value"
|
||||
tracks/1/path = NodePath("MeshInstance:rotation_degrees")
|
||||
tracks/1/interp = 1
|
||||
tracks/1/loop_wrap = true
|
||||
tracks/1/imported = false
|
||||
tracks/1/enabled = true
|
||||
tracks/1/keys = {
|
||||
"times": PoolRealArray( 0, 1, 2 ),
|
||||
"transitions": PoolRealArray( 1, 1, 1 ),
|
||||
"update": 0,
|
||||
"values": [ Vector3( 90, 0, 0 ), Vector3( 90, 180, 0 ), Vector3( 90, 360, 0 ) ]
|
||||
}
|
||||
|
||||
[node name="NautreSwiftness" type="Spatial"]
|
||||
|
||||
[node name="CPUParticles" type="CPUParticles" parent="."]
|
||||
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.1, 0 )
|
||||
amount = 3
|
||||
lifetime = 0.8
|
||||
explosiveness = 0.61
|
||||
mesh = SubResource( 2 )
|
||||
emission_shape = 2
|
||||
emission_box_extents = Vector3( 0.3, 0.2, 0.3 )
|
||||
direction = Vector3( 0, 1, 0 )
|
||||
spread = 21.8
|
||||
gravity = Vector3( 0, 3.26, 0 )
|
||||
initial_velocity = 1.0
|
||||
initial_velocity_random = 0.59
|
||||
angular_velocity = 37.24
|
||||
angular_velocity_random = 0.61
|
||||
radial_accel = 1.72
|
||||
radial_accel_random = 0.44
|
||||
tangential_accel = 1.72
|
||||
damping = 3.45
|
||||
angle = 720.0
|
||||
angle_random = 0.35
|
||||
color = Color( 0.117647, 0.866667, 0.560784, 1 )
|
||||
hue_variation = -0.24
|
||||
hue_variation_random = 1.0
|
||||
|
||||
[node name="MeshInstance" type="MeshInstance" parent="."]
|
||||
transform = Transform( -0.395711, 0.858146, -1.3981e-07, 0, -1.53958e-07, -0.944988, -0.858146, -0.395711, 6.44696e-08, 0, 0, 0 )
|
||||
mesh = SubResource( 4 )
|
||||
material/0 = null
|
||||
|
||||
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
|
||||
autoplay = "Anim"
|
||||
anims/Anim = SubResource( 5 )
|
BIN
game/data/spell_effects/textures/arrows.png
Normal file
BIN
game/data/spell_effects/textures/arrows.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 482 B |
34
game/data/spell_effects/textures/arrows.png.import
Normal file
34
game/data/spell_effects/textures/arrows.png.import
Normal file
@ -0,0 +1,34 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="StreamTexture"
|
||||
path="res://.import/arrows.png-e04cf4aa970f723402f40b1f4c1c0b3b.stex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://data/spell_effects/textures/arrows.png"
|
||||
dest_files=[ "res://.import/arrows.png-e04cf4aa970f723402f40b1f4c1c0b3b.stex" ]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_mode=0
|
||||
compress/bptc_ldr=0
|
||||
compress/normal_map=0
|
||||
flags/repeat=true
|
||||
flags/filter=false
|
||||
flags/mipmaps=false
|
||||
flags/anisotropic=false
|
||||
flags/srgb=2
|
||||
process/fix_alpha_border=false
|
||||
process/premult_alpha=false
|
||||
process/HDR_as_SRGB=false
|
||||
process/invert_color=false
|
||||
stream=false
|
||||
size_limit=0
|
||||
detect_3d=false
|
||||
svg/scale=1.0
|
BIN
game/data/spell_effects/textures/big_glow.png
Normal file
BIN
game/data/spell_effects/textures/big_glow.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 259 B |
34
game/data/spell_effects/textures/big_glow.png.import
Normal file
34
game/data/spell_effects/textures/big_glow.png.import
Normal file
@ -0,0 +1,34 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="StreamTexture"
|
||||
path="res://.import/big_glow.png-d3eda1d6185d63bdc430c646a22bb62f.stex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://data/spell_effects/textures/big_glow.png"
|
||||
dest_files=[ "res://.import/big_glow.png-d3eda1d6185d63bdc430c646a22bb62f.stex" ]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_mode=0
|
||||
compress/bptc_ldr=0
|
||||
compress/normal_map=0
|
||||
flags/repeat=0
|
||||
flags/filter=false
|
||||
flags/mipmaps=false
|
||||
flags/anisotropic=false
|
||||
flags/srgb=2
|
||||
process/fix_alpha_border=false
|
||||
process/premult_alpha=false
|
||||
process/HDR_as_SRGB=false
|
||||
process/invert_color=false
|
||||
stream=false
|
||||
size_limit=0
|
||||
detect_3d=false
|
||||
svg/scale=1.0
|
BIN
game/data/spell_effects/textures/main_texture.png
Normal file
BIN
game/data/spell_effects/textures/main_texture.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 194 B |
34
game/data/spell_effects/textures/main_texture.png.import
Normal file
34
game/data/spell_effects/textures/main_texture.png.import
Normal file
@ -0,0 +1,34 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="StreamTexture"
|
||||
path="res://.import/main_texture.png-f00e0ab4ed97ff1475835686a7454874.stex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://data/spell_effects/textures/main_texture.png"
|
||||
dest_files=[ "res://.import/main_texture.png-f00e0ab4ed97ff1475835686a7454874.stex" ]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_mode=0
|
||||
compress/bptc_ldr=0
|
||||
compress/normal_map=0
|
||||
flags/repeat=0
|
||||
flags/filter=false
|
||||
flags/mipmaps=false
|
||||
flags/anisotropic=false
|
||||
flags/srgb=2
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/HDR_as_SRGB=false
|
||||
process/invert_color=false
|
||||
stream=false
|
||||
size_limit=0
|
||||
detect_3d=false
|
||||
svg/scale=1.0
|
BIN
game/data/spell_effects/textures/small_star.png
Normal file
BIN
game/data/spell_effects/textures/small_star.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 225 B |
34
game/data/spell_effects/textures/small_star.png.import
Normal file
34
game/data/spell_effects/textures/small_star.png.import
Normal file
@ -0,0 +1,34 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="StreamTexture"
|
||||
path="res://.import/small_star.png-df42addd723ec8255619446fbe11ce1a.stex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://data/spell_effects/textures/small_star.png"
|
||||
dest_files=[ "res://.import/small_star.png-df42addd723ec8255619446fbe11ce1a.stex" ]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_mode=0
|
||||
compress/bptc_ldr=0
|
||||
compress/normal_map=2
|
||||
flags/repeat=0
|
||||
flags/filter=false
|
||||
flags/mipmaps=false
|
||||
flags/anisotropic=false
|
||||
flags/srgb=2
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/HDR_as_SRGB=false
|
||||
process/invert_color=false
|
||||
stream=false
|
||||
size_limit=0
|
||||
detect_3d=false
|
||||
svg/scale=1.0
|
BIN
game/data/spell_effects/textures/star.png
Normal file
BIN
game/data/spell_effects/textures/star.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 283 B |
34
game/data/spell_effects/textures/star.png.import
Normal file
34
game/data/spell_effects/textures/star.png.import
Normal file
@ -0,0 +1,34 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="StreamTexture"
|
||||
path="res://.import/star.png-d57669aa5fea5b6090428296488efa8d.stex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://data/spell_effects/textures/star.png"
|
||||
dest_files=[ "res://.import/star.png-d57669aa5fea5b6090428296488efa8d.stex" ]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_mode=0
|
||||
compress/bptc_ldr=0
|
||||
compress/normal_map=0
|
||||
flags/repeat=0
|
||||
flags/filter=false
|
||||
flags/mipmaps=false
|
||||
flags/anisotropic=false
|
||||
flags/srgb=2
|
||||
process/fix_alpha_border=false
|
||||
process/premult_alpha=false
|
||||
process/HDR_as_SRGB=false
|
||||
process/invert_color=false
|
||||
stream=false
|
||||
size_limit=0
|
||||
detect_3d=false
|
||||
svg/scale=1.0
|
26
game/data/spells/10_aspect_of_scorpions_rank_1.tres
Normal file
26
game/data/spells/10_aspect_of_scorpions_rank_1.tres
Normal file
@ -0,0 +1,26 @@
|
||||
[gd_resource type="Spell" load_steps=6 format=2]
|
||||
|
||||
[ext_resource path="res://scripts/spells/gd_spell_script.gd" type="Script" id=1]
|
||||
[ext_resource path="res://data/icons/naturalist/aspect_of_scorpions.tres" type="Texture" id=2]
|
||||
[ext_resource path="res://data/auras/10_aspect_of_scorpions_rank_1.tres" type="Aura" id=3]
|
||||
[ext_resource path="res://data/effect_data/aspect_of_scorpions.tres" type="SpellEffectVisual" id=4]
|
||||
[ext_resource path="res://data/spells/27_aspect_of_scorpions.tres" type="Spell" id=5]
|
||||
|
||||
[resource]
|
||||
resource_name = "Aspect of Scorpions"
|
||||
id = 10
|
||||
spell_type = 8
|
||||
rank = 10
|
||||
icon = ExtResource( 2 )
|
||||
visual_spell_effects = ExtResource( 4 )
|
||||
text_name = "Aspect of Scorpions"
|
||||
text_description = "Range: 26m.
|
||||
Casttime: {3}.
|
||||
Deals 340 to 380 damage every 3 sec, and increases damage taken by 10% for 30 sec."
|
||||
target_aura_applys = [ ExtResource( 3 ) ]
|
||||
range = true
|
||||
range_range = 26.0
|
||||
cast = true
|
||||
cast_cast_time = 1.2
|
||||
training_required_spell = ExtResource( 5 )
|
||||
script = ExtResource( 1 )
|
26
game/data/spells/11_aspect_of_wasps_rank_1.tres
Normal file
26
game/data/spells/11_aspect_of_wasps_rank_1.tres
Normal file
@ -0,0 +1,26 @@
|
||||
[gd_resource type="Spell" load_steps=4 format=2]
|
||||
|
||||
[ext_resource path="res://scripts/spells/gd_spell_script.gd" type="Script" id=1]
|
||||
[ext_resource path="res://data/icons/naturalist/aspect_of_wasps.tres" type="Texture" id=2]
|
||||
[ext_resource path="res://data/auras/11_aspect_of_wasps_rank1.tres" type="Aura" id=3]
|
||||
|
||||
[resource]
|
||||
resource_name = "Aspect of Wasps"
|
||||
id = 11
|
||||
spell_type = 8
|
||||
rank = 10
|
||||
icon = ExtResource( 2 )
|
||||
text_name = "Aspect of Wasps"
|
||||
text_description = "Range: 26m.
|
||||
Instant.
|
||||
Deals 230 to 270 damage every 3 sec, this damage increases over the duration, for 21 sec."
|
||||
target_aura_applys = [ ExtResource( 3 ) ]
|
||||
range = true
|
||||
range_range = 26.0
|
||||
cost_type = 480
|
||||
give_resource_type = 480
|
||||
aoe_targetType = 541
|
||||
aoe_movement_type = 99418736
|
||||
aoe_colliderType = 541
|
||||
projectile_type = 541
|
||||
script = ExtResource( 1 )
|
26
game/data/spells/12_aspect_of_wolves_rank_1.tres
Normal file
26
game/data/spells/12_aspect_of_wolves_rank_1.tres
Normal file
@ -0,0 +1,26 @@
|
||||
[gd_resource type="Spell" load_steps=4 format=2]
|
||||
|
||||
[ext_resource path="res://scripts/spells/gd_spell_script.gd" type="Script" id=1]
|
||||
[ext_resource path="res://data/icons/naturalist/aspect_of_wolves.tres" type="Texture" id=2]
|
||||
[ext_resource path="res://data/auras/12_aspect_of_wolves_rank_1.tres" type="Aura" id=3]
|
||||
|
||||
[resource]
|
||||
resource_name = "Aspect of Wolves"
|
||||
id = 12
|
||||
spell_type = 8
|
||||
rank = 10
|
||||
icon = ExtResource( 2 )
|
||||
needs_target = true
|
||||
text_name = "Aspect of Wolves"
|
||||
text_description = "Range: 26m.
|
||||
Deals 280 to 330 damage every 2 sec, and reduces melee and spell damage by 10% for 22 sec."
|
||||
target_aura_applys = [ ExtResource( 3 ) ]
|
||||
range = true
|
||||
range_range = 26.0
|
||||
cost_type = 480
|
||||
give_resource_type = 480
|
||||
aoe_targetType = 1129071960
|
||||
aoe_movement_type = 2190112
|
||||
aoe_colliderType = 1058050193
|
||||
projectile_type = -1039400960
|
||||
script = ExtResource( 1 )
|
29
game/data/spells/13_aspect_of_bees_rank_1.tres
Normal file
29
game/data/spells/13_aspect_of_bees_rank_1.tres
Normal file
@ -0,0 +1,29 @@
|
||||
[gd_resource type="Spell" load_steps=4 format=2]
|
||||
|
||||
[ext_resource path="res://scripts/spells/gd_spell_script.gd" type="Script" id=1]
|
||||
[ext_resource path="res://data/icons/naturalist/aspect_of_bees.tres" type="Texture" id=2]
|
||||
[ext_resource path="res://data/auras/13_aspect_of_bees_rank_1.tres" type="Aura" id=3]
|
||||
|
||||
[resource]
|
||||
resource_name = "Aspect of Bees"
|
||||
id = 13
|
||||
spell_type = 8
|
||||
rank = 10
|
||||
icon = ExtResource( 2 )
|
||||
needs_target = true
|
||||
text_name = "Aspect of Bees"
|
||||
text_description = "Range: 26m.
|
||||
Instant.
|
||||
Cooldown: {2}
|
||||
Deals 460 to 540 damage every 3 sec, healing you for 80% of the damage."
|
||||
cooldown_cooldown = 21.0
|
||||
target_aura_applys = [ ExtResource( 3 ) ]
|
||||
range = true
|
||||
range_range = 26.0
|
||||
cost_type = 480
|
||||
give_resource_type = 480
|
||||
aoe_targetType = -1910718371
|
||||
aoe_movement_type = 1611610192
|
||||
aoe_colliderType = -298046312
|
||||
projectile_type = 1065353216
|
||||
script = ExtResource( 1 )
|
43
game/data/spells/14_amplify_pain_rank_1.tres
Normal file
43
game/data/spells/14_amplify_pain_rank_1.tres
Normal file
@ -0,0 +1,43 @@
|
||||
[gd_resource type="Spell" load_steps=7 format=2]
|
||||
|
||||
[ext_resource path="res://scripts/spells/amplify_pain.gd" type="Script" id=1]
|
||||
[ext_resource path="res://data/icons/naturalist/amplify_pain.tres" type="Texture" id=2]
|
||||
[ext_resource path="res://scripts/resources/spell_effect_visual_basic.gd" type="Script" id=3]
|
||||
[ext_resource path="res://data/spell_effects/nature/AmplifyPain.tscn" type="PackedScene" id=4]
|
||||
[ext_resource path="res://data/spell_effects/nature/NatureCast.tscn" type="PackedScene" id=5]
|
||||
|
||||
[sub_resource type="SpellEffectVisual" id=1]
|
||||
script = ExtResource( 3 )
|
||||
spell_cast_effect_left_hand = ExtResource( 5 )
|
||||
spell_cast_effect_right_hand = ExtResource( 5 )
|
||||
torso_aura_effect_time = 0.0
|
||||
root_aura_effect_time = 0.0
|
||||
torso_spell_cast_finish_effect = ExtResource( 4 )
|
||||
torso_spell_cast_finish_effect_time = 0.4
|
||||
root_spell_cast_finish_effect_time = 1.0
|
||||
|
||||
[resource]
|
||||
resource_name = "Amplify Pain"
|
||||
id = 14
|
||||
spell_type = 8
|
||||
level = 10
|
||||
icon = ExtResource( 2 )
|
||||
visual_spell_effects = SubResource( 1 )
|
||||
text_name = "Amplify Pain"
|
||||
text_description = "Range: 26m.
|
||||
Casttime: {3}.
|
||||
Causes your damage over time effects to tick."
|
||||
range = true
|
||||
range_range = 26.0
|
||||
cast = true
|
||||
cast_cast_time = 1.5
|
||||
damage = true
|
||||
damage_type = 16
|
||||
damage_min = 130
|
||||
damage_max = 150
|
||||
cost_type = 476
|
||||
aoe_targetType = -1910718371
|
||||
aoe_movement_type = 1611610192
|
||||
aoe_colliderType = 1065353216
|
||||
projectile_type = 882743928
|
||||
script = ExtResource( 1 )
|
25
game/data/spells/15_rejuvenation_rank_1.tres
Normal file
25
game/data/spells/15_rejuvenation_rank_1.tres
Normal file
@ -0,0 +1,25 @@
|
||||
[gd_resource type="Spell" load_steps=4 format=2]
|
||||
|
||||
[ext_resource path="res://scripts/spells/gd_spell_script.gd" type="Script" id=1]
|
||||
[ext_resource path="res://data/icons/naturalist/rejuvenation.tres" type="Texture" id=2]
|
||||
[ext_resource path="res://data/auras/14_rejuvenation_rank_1.tres" type="Aura" id=3]
|
||||
|
||||
[resource]
|
||||
resource_name = "Rejuvenation"
|
||||
id = 15
|
||||
spell_type = 8
|
||||
target_type = 2
|
||||
target_relation_type = 4
|
||||
rank = 1
|
||||
icon = ExtResource( 2 )
|
||||
text_name = "Rejuvenation"
|
||||
text_description = "Instant.
|
||||
Heals you for 400 to 450 every 3 sec for 30 sec."
|
||||
caster_aura_applys = [ ExtResource( 3 ) ]
|
||||
cost_type = 480
|
||||
give_resource_type = 480
|
||||
aoe_targetType = 32758
|
||||
aoe_movement_type = -2000446188
|
||||
aoe_colliderType = -2147479552
|
||||
projectile_type = 4
|
||||
script = ExtResource( 1 )
|
25
game/data/spells/16_close_wounds_rank_1.tres
Normal file
25
game/data/spells/16_close_wounds_rank_1.tres
Normal file
@ -0,0 +1,25 @@
|
||||
[gd_resource type="Spell" load_steps=4 format=2]
|
||||
|
||||
[ext_resource path="res://scripts/spells/gd_spell_script.gd" type="Script" id=1]
|
||||
[ext_resource path="res://data/icons/naturalist/close_wounds.tres" type="Texture" id=2]
|
||||
[ext_resource path="res://data/auras/15_close_wounds_rank_1.tres" type="Aura" id=3]
|
||||
|
||||
[resource]
|
||||
resource_name = "Close Wounds"
|
||||
id = 16
|
||||
spell_type = 8
|
||||
target_type = 2
|
||||
target_relation_type = -870457328
|
||||
rank = 1
|
||||
icon = ExtResource( 2 )
|
||||
text_name = "Close Wounds"
|
||||
text_description = "Casttime: 2 sec.
|
||||
Cooldown: {2}
|
||||
Heals you for 720 to 780 every 3 sec for 21 sec."
|
||||
caster_aura_applys = [ ExtResource( 3 ) ]
|
||||
cast = true
|
||||
cast_cast_time = 1.3
|
||||
give_resource_type = 2
|
||||
aoe_movement_type = -2000446188
|
||||
aoe_colliderType = -2147479552
|
||||
script = ExtResource( 1 )
|
28
game/data/spells/17_ironbark_rank_1.tres
Normal file
28
game/data/spells/17_ironbark_rank_1.tres
Normal file
@ -0,0 +1,28 @@
|
||||
[gd_resource type="Spell" load_steps=4 format=2]
|
||||
|
||||
[ext_resource path="res://scripts/spells/gd_spell_script.gd" type="Script" id=1]
|
||||
[ext_resource path="res://data/icons/naturalist/ironbark.tres" type="Texture" id=2]
|
||||
[ext_resource path="res://data/auras/16_ironbark_rank_1.tres" type="Aura" id=3]
|
||||
|
||||
[resource]
|
||||
resource_name = "Ironbark"
|
||||
id = 17
|
||||
spell_type = 8
|
||||
target_type = 480
|
||||
target_relation_type = 914787760
|
||||
rank = 1
|
||||
icon = ExtResource( 2 )
|
||||
text_name = "Ironbark"
|
||||
text_description = "Instant.
|
||||
Cooldown: {2}
|
||||
Reduces damage taken by 70%. This spell is not on the global cooldown."
|
||||
cooldown_cooldown = 60.0
|
||||
cooldown_global_cooldown = false
|
||||
caster_aura_applys = [ ExtResource( 3 ) ]
|
||||
cost_type = 480
|
||||
give_resource_type = 480
|
||||
aoe_targetType = -1910718371
|
||||
aoe_movement_type = 1611610192
|
||||
aoe_colliderType = -298046312
|
||||
projectile_type = 882743928
|
||||
script = ExtResource( 1 )
|
28
game/data/spells/18_natures_swiftness_rank_1.tres
Normal file
28
game/data/spells/18_natures_swiftness_rank_1.tres
Normal file
@ -0,0 +1,28 @@
|
||||
[gd_resource type="Spell" load_steps=4 format=2]
|
||||
|
||||
[ext_resource path="res://data/icons/naturalist/natures_swiftness.tres" type="Texture" id=1]
|
||||
[ext_resource path="res://data/auras/17_natures_swiftness_rank_1.tres" type="Aura" id=2]
|
||||
[ext_resource path="res://scripts/spells/gd_spell_script.gd" type="Script" id=3]
|
||||
|
||||
[resource]
|
||||
resource_name = "Nature's Swiftness"
|
||||
id = 18
|
||||
spell_type = 8
|
||||
target_type = 520
|
||||
target_relation_type = 393653346
|
||||
rank = 1
|
||||
icon = ExtResource( 1 )
|
||||
text_name = "Nature's Swiftness"
|
||||
text_description = "Instant.
|
||||
Cooldown: {2}
|
||||
Increases your movement speed by 60% for 6 sec. This spell is not on the global cooldown."
|
||||
cooldown_cooldown = 20.0
|
||||
cooldown_global_cooldown = false
|
||||
caster_aura_applys = [ ExtResource( 2 ) ]
|
||||
cost_type = 480
|
||||
give_resource_type = 480
|
||||
aoe_targetType = 520
|
||||
aoe_movement_type = 538514176
|
||||
aoe_colliderType = 186459648
|
||||
projectile_type = 101
|
||||
script = ExtResource( 3 )
|
27
game/data/spells/19_uproot_rank_1.tres
Normal file
27
game/data/spells/19_uproot_rank_1.tres
Normal file
@ -0,0 +1,27 @@
|
||||
[gd_resource type="Spell" load_steps=3 format=2]
|
||||
|
||||
[ext_resource path="res://data/icons/naturalist/uproot.tres" type="Texture" id=1]
|
||||
[ext_resource path="res://scripts/spells/gd_spell_script.gd" type="Script" id=2]
|
||||
|
||||
[resource]
|
||||
resource_name = "Uproot"
|
||||
id = 19
|
||||
spell_type = 8
|
||||
target_type = -2147460864
|
||||
rank = 1
|
||||
icon = ExtResource( 1 )
|
||||
text_name = "Uproot"
|
||||
text_description = "Instant.
|
||||
Cooldown: {2}
|
||||
Roots every enemy around you in a 15m radius for 8 sec. This spell doesn't have diminishing return."
|
||||
cooldown_cooldown = 24.0
|
||||
range = true
|
||||
range_range = 15.0
|
||||
cost_type = 480
|
||||
give_resource_type = 6
|
||||
aoe = true
|
||||
aoe_targetType = -572653568
|
||||
aoe_movement_type = -436862976
|
||||
aoe_colliderType = 537722880
|
||||
projectile_type = 6
|
||||
script = ExtResource( 2 )
|
24
game/data/spells/1_test_spell.tres
Normal file
24
game/data/spells/1_test_spell.tres
Normal file
@ -0,0 +1,24 @@
|
||||
[gd_resource type="Spell" load_steps=4 format=2]
|
||||
|
||||
[ext_resource path="res://scripts/spells/gd_spell_script.gd" type="Script" id=1]
|
||||
[ext_resource path="res://data/icons/naturalist/test.tres" type="Texture" id=2]
|
||||
[ext_resource path="res://data/spell_effects/enchanter/Arrow.tscn" type="PackedScene" id=4]
|
||||
|
||||
[resource]
|
||||
resource_name = "adadadadadad"
|
||||
spell_type = 16
|
||||
target_relation_type = -138672214
|
||||
rank = 1
|
||||
icon = ExtResource( 2 )
|
||||
needs_target = true
|
||||
text_name = "adadadadadad"
|
||||
damage = true
|
||||
damage_min = 200
|
||||
damage_max = 300
|
||||
give_resource_type = 2
|
||||
aoe_targetType = 1431112251
|
||||
aoe_movement_type = 860237388
|
||||
aoe_colliderType = 827465778
|
||||
projectile = ExtResource( 4 )
|
||||
projectile_speed = 50.0
|
||||
script = ExtResource( 1 )
|
27
game/data/spells/20_root_rank_1.tres
Normal file
27
game/data/spells/20_root_rank_1.tres
Normal file
@ -0,0 +1,27 @@
|
||||
[gd_resource type="Spell" load_steps=4 format=2]
|
||||
|
||||
[ext_resource path="res://data/icons/naturalist/root.tres" type="Texture" id=1]
|
||||
[ext_resource path="res://scripts/spells/gd_spell_script.gd" type="Script" id=2]
|
||||
[ext_resource path="res://data/auras/20_root_rank_1.tres" type="Aura" id=3]
|
||||
|
||||
[resource]
|
||||
resource_name = "Root"
|
||||
id = 20
|
||||
spell_type = 8
|
||||
rank = 1
|
||||
icon = ExtResource( 1 )
|
||||
text_name = "Root"
|
||||
text_description = "Range: 26m.
|
||||
Casttime: 1.5 sec.
|
||||
Cooldown: {2}
|
||||
Roots the target for 8 sec."
|
||||
target_aura_applys = [ ExtResource( 3 ) ]
|
||||
range = true
|
||||
cast = true
|
||||
cast_cast_time = 1.4
|
||||
give_resource_type = 5
|
||||
aoe_targetType = 8
|
||||
aoe_movement_type = 1
|
||||
aoe_colliderType = 537722880
|
||||
projectile_type = 6
|
||||
script = ExtResource( 2 )
|
29
game/data/spells/21_strength_of_nature_rank_1.tres
Normal file
29
game/data/spells/21_strength_of_nature_rank_1.tres
Normal file
@ -0,0 +1,29 @@
|
||||
[gd_resource type="Spell" load_steps=3 format=2]
|
||||
|
||||
[ext_resource path="res://scripts/spells/gd_spell_script.gd" type="Script" id=1]
|
||||
[ext_resource path="res://data/icons/naturalist/strength_of_nature.tres" type="Texture" id=2]
|
||||
|
||||
[resource]
|
||||
resource_name = "Strength of Nature"
|
||||
id = 21
|
||||
spell_type = 8
|
||||
target_type = -2147477248
|
||||
target_relation_type = 24
|
||||
level = 11
|
||||
rank = 1
|
||||
icon = ExtResource( 2 )
|
||||
text_name = "Strength of Nature"
|
||||
text_description = "Instant.
|
||||
Cooldown: {2}
|
||||
Heals you for 6700 to 7000."
|
||||
cooldown_cooldown = 150.0
|
||||
heal = true
|
||||
heal_min = 6700
|
||||
heal_max = 7000
|
||||
cost_type = 480
|
||||
give_resource_type = 2
|
||||
aoe_targetType = 5
|
||||
aoe_movement_type = 7602259
|
||||
aoe_colliderType = 7602273
|
||||
projectile_type = 8
|
||||
script = ExtResource( 1 )
|
23
game/data/spells/22_shield_of_barbs_rank_1.tres
Normal file
23
game/data/spells/22_shield_of_barbs_rank_1.tres
Normal file
@ -0,0 +1,23 @@
|
||||
[gd_resource type="Spell" load_steps=3 format=2]
|
||||
|
||||
[ext_resource path="res://scripts/spells/gd_spell_script.gd" type="Script" id=1]
|
||||
[ext_resource path="res://data/icons/naturalist/shield_of_barbs.tres" type="Texture" id=2]
|
||||
|
||||
[resource]
|
||||
resource_name = "Shield of Barbs"
|
||||
id = 22
|
||||
spell_type = 8
|
||||
target_type = -2147456768
|
||||
target_relation_type = 24
|
||||
rank = 1
|
||||
icon = ExtResource( 2 )
|
||||
text_name = "Shield of Barbs"
|
||||
text_description = "Instant.
|
||||
Cooldown: {2}
|
||||
Absorbs 4200 to 4400 damage, also deals 340 to 380 damage to any attacker, for 30 sec."
|
||||
cooldown_cooldown = 45.0
|
||||
give_resource_type = 5
|
||||
aoe_targetType = 5
|
||||
aoe_movement_type = 7274563
|
||||
aoe_colliderType = 7929968
|
||||
script = ExtResource( 1 )
|
24
game/data/spells/23_calm_rank_1.tres
Normal file
24
game/data/spells/23_calm_rank_1.tres
Normal file
@ -0,0 +1,24 @@
|
||||
[gd_resource type="Spell" load_steps=3 format=2]
|
||||
|
||||
[ext_resource path="res://scripts/spells/gd_spell_script.gd" type="Script" id=1]
|
||||
[ext_resource path="res://data/icons/naturalist/calm.tres" type="Texture" id=2]
|
||||
|
||||
[resource]
|
||||
resource_name = "Calm"
|
||||
id = 23
|
||||
spell_type = 8
|
||||
rank = 1
|
||||
icon = ExtResource( 2 )
|
||||
text_name = "Calm"
|
||||
text_description = "Range: 26m.
|
||||
Instant.
|
||||
Cooldown: {2}
|
||||
Reduces the target's melee and spell damage by 50% for 10 sec."
|
||||
cooldown_cooldown = 90.0
|
||||
cost_type = 480
|
||||
give_resource_type = 5
|
||||
aoe_targetType = -2147478784
|
||||
aoe_movement_type = 1
|
||||
aoe_colliderType = 7602273
|
||||
projectile_type = 5
|
||||
script = ExtResource( 1 )
|
25
game/data/spells/24_attunement_rank_1.tres
Normal file
25
game/data/spells/24_attunement_rank_1.tres
Normal file
@ -0,0 +1,25 @@
|
||||
[gd_resource type="Spell" load_steps=3 format=2]
|
||||
|
||||
[ext_resource path="res://scripts/spells/gd_spell_script.gd" type="Script" id=1]
|
||||
[ext_resource path="res://data/icons/naturalist/attunement.tres" type="Texture" id=2]
|
||||
|
||||
[resource]
|
||||
resource_name = "Attunement"
|
||||
id = 24
|
||||
spell_type = 8
|
||||
target_type = -2147448576
|
||||
target_relation_type = 24
|
||||
rank = 1
|
||||
icon = ExtResource( 2 )
|
||||
text_name = "Attunement"
|
||||
text_description = "Instant.
|
||||
Cooldown: {2}
|
||||
Increases your spell damage by 30% for 20 sec."
|
||||
cooldown_cooldown = 180.0
|
||||
cost_type = 480
|
||||
give_resource_type = 6
|
||||
aoe_targetType = 2
|
||||
aoe_movement_type = 915097248
|
||||
aoe_colliderType = 480
|
||||
projectile_type = 8
|
||||
script = ExtResource( 1 )
|
23
game/data/spells/25_inner_will.tres
Normal file
23
game/data/spells/25_inner_will.tres
Normal file
@ -0,0 +1,23 @@
|
||||
[gd_resource type="Spell" load_steps=3 format=2]
|
||||
|
||||
[ext_resource path="res://scripts/spells/gd_spell_script.gd" type="Script" id=1]
|
||||
[ext_resource path="res://data/icons/naturalist/inner_will.tres" type="Texture" id=2]
|
||||
|
||||
[resource]
|
||||
resource_name = "Inner Will"
|
||||
id = 25
|
||||
spell_type = 1
|
||||
target_type = 2
|
||||
target_relation_type = -11822355
|
||||
icon = ExtResource( 2 )
|
||||
text_name = "Inner Will"
|
||||
text_description = "Cooldown: 1.5 min.
|
||||
Removes any movement impairing effects, stuns, and effects which makes you lose control of your character. This spell is not on the global cooldown."
|
||||
cooldown_cooldown = 90.0
|
||||
cooldown_global_cooldown = false
|
||||
cost_type = 480
|
||||
give_resource_type = 5
|
||||
aoe_targetType = 7
|
||||
aoe_movement_type = 18
|
||||
aoe_colliderType = 480
|
||||
script = ExtResource( 1 )
|
21
game/data/spells/26_rest.tres
Normal file
21
game/data/spells/26_rest.tres
Normal file
@ -0,0 +1,21 @@
|
||||
[gd_resource type="Spell" load_steps=3 format=2]
|
||||
|
||||
[ext_resource path="res://scripts/spells/gd_spell_script.gd" type="Script" id=1]
|
||||
[ext_resource path="res://data/icons/naturalist/regenerate.tres" type="Texture" id=2]
|
||||
|
||||
[resource]
|
||||
resource_name = "Rest"
|
||||
id = 26
|
||||
spell_type = 1
|
||||
target_type = 2
|
||||
target_relation_type = 24
|
||||
icon = ExtResource( 2 )
|
||||
text_name = "Rest"
|
||||
text_description = "Rest for 30 seconds, greatly increasing your regeneration."
|
||||
cost_type = 480
|
||||
give_resource_type = 6
|
||||
aoe_targetType = 5
|
||||
aoe_movement_type = 6357069
|
||||
aoe_colliderType = 1065353216
|
||||
projectile_type = 7
|
||||
script = ExtResource( 1 )
|
25
game/data/spells/27_aspect_of_scorpions.tres
Normal file
25
game/data/spells/27_aspect_of_scorpions.tres
Normal file
@ -0,0 +1,25 @@
|
||||
[gd_resource type="Spell" load_steps=5 format=2]
|
||||
|
||||
[ext_resource path="res://data/icons/naturalist/aspect_of_scorpions.tres" type="Texture" id=1]
|
||||
[ext_resource path="res://scripts/spells/gd_spell_script.gd" type="Script" id=2]
|
||||
[ext_resource path="res://data/auras/21_aspect_of_scorpions.tres" type="Aura" id=3]
|
||||
[ext_resource path="res://data/effect_data/aspect_of_scorpions.tres" type="SpellEffectVisual" id=4]
|
||||
|
||||
[resource]
|
||||
resource_name = "Aspect of Scorpions"
|
||||
id = 27
|
||||
spell_type = 8
|
||||
rank = 1
|
||||
icon = ExtResource( 1 )
|
||||
visual_spell_effects = ExtResource( 4 )
|
||||
text_name = "Aspect of Scorpions"
|
||||
text_description = "Range: 26m.
|
||||
Casttime: {3}.
|
||||
Deals 340 to 380 damage every 3 sec, and increases damage taken by 10% for 30 sec."
|
||||
target_aura_applys = [ ExtResource( 3 ) ]
|
||||
range = true
|
||||
range_range = 26.0
|
||||
cast = true
|
||||
cast_cast_time = 1.2
|
||||
spell_cooldown_mainpulation_data_count = -1
|
||||
script = ExtResource( 2 )
|
26
game/data/spells/28_aspectofwasps.tres
Normal file
26
game/data/spells/28_aspectofwasps.tres
Normal file
@ -0,0 +1,26 @@
|
||||
[gd_resource type="Spell" load_steps=4 format=2]
|
||||
|
||||
[ext_resource path="res://scripts/spells/gd_spell_script.gd" type="Script" id=1]
|
||||
[ext_resource path="res://data/auras/22_aspect_of_wasps.tres" type="Aura" id=2]
|
||||
[ext_resource path="res://data/icons/naturalist/aspect_of_wasps.tres" type="Texture" id=3]
|
||||
|
||||
[resource]
|
||||
resource_name = "Aspect of Wasps"
|
||||
id = 28
|
||||
spell_type = 8
|
||||
rank = 1
|
||||
icon = ExtResource( 3 )
|
||||
text_name = "Aspect of Wasps"
|
||||
text_description = "Range: 26m.
|
||||
Instant.
|
||||
Deals 230 to 270 damage every 3 sec, this damage increases over the duration, for 21 sec."
|
||||
target_aura_applys = [ ExtResource( 2 ) ]
|
||||
range = true
|
||||
range_range = 26.0
|
||||
cost_type = 480
|
||||
give_resource_type = 480
|
||||
aoe_targetType = 541
|
||||
aoe_movement_type = 99418736
|
||||
aoe_colliderType = 541
|
||||
projectile_type = 541
|
||||
script = ExtResource( 1 )
|
26
game/data/spells/29_aspect_of_wolves.tres
Normal file
26
game/data/spells/29_aspect_of_wolves.tres
Normal file
@ -0,0 +1,26 @@
|
||||
[gd_resource type="Spell" load_steps=4 format=2]
|
||||
|
||||
[ext_resource path="res://scripts/spells/gd_spell_script.gd" type="Script" id=1]
|
||||
[ext_resource path="res://data/auras/23_aspect_of_wolves.tres" type="Aura" id=2]
|
||||
[ext_resource path="res://data/icons/naturalist/aspect_of_wolves.tres" type="Texture" id=3]
|
||||
|
||||
[resource]
|
||||
resource_name = "Aspect of Wolves"
|
||||
id = 29
|
||||
spell_type = 8
|
||||
rank = 1
|
||||
icon = ExtResource( 3 )
|
||||
needs_target = true
|
||||
text_name = "Aspect of Wolves"
|
||||
text_description = "Range: 26m.
|
||||
Deals 280 to 330 damage every 2 sec, and reduces melee and spell damage by 10% for 22 sec."
|
||||
target_aura_applys = [ ExtResource( 2 ) ]
|
||||
range = true
|
||||
range_range = 26.0
|
||||
cost_type = 480
|
||||
give_resource_type = 480
|
||||
aoe_targetType = 1129071960
|
||||
aoe_movement_type = 2190112
|
||||
aoe_colliderType = 1058050193
|
||||
projectile_type = -1039400960
|
||||
script = ExtResource( 1 )
|
15
game/data/spells/2_test_cast_spell.tres
Normal file
15
game/data/spells/2_test_cast_spell.tres
Normal file
@ -0,0 +1,15 @@
|
||||
[gd_resource type="Spell" load_steps=3 format=2]
|
||||
|
||||
[ext_resource path="res://data/icons/naturalist/natures_swiftness.tres" type="Texture" id=1]
|
||||
[ext_resource path="res://scripts/spells/gd_spell_script.gd" type="Script" id=2]
|
||||
|
||||
[resource]
|
||||
id = 2
|
||||
spell_type = 16
|
||||
target_type = -2147461888
|
||||
target_relation_type = 4
|
||||
rank = 1
|
||||
icon = ExtResource( 1 )
|
||||
aoe_targetType = -2147459840
|
||||
aoe_movement_type = 4
|
||||
script = ExtResource( 2 )
|
30
game/data/spells/30_aspect_of_bees.tres
Normal file
30
game/data/spells/30_aspect_of_bees.tres
Normal file
@ -0,0 +1,30 @@
|
||||
[gd_resource type="Spell" load_steps=4 format=2]
|
||||
|
||||
[ext_resource path="res://scripts/spells/gd_spell_script.gd" type="Script" id=1]
|
||||
[ext_resource path="res://data/auras/24_aspect_of_bees.tres" type="Aura" id=2]
|
||||
[ext_resource path="res://data/icons/naturalist/aspect_of_bees.tres" type="Texture" id=3]
|
||||
|
||||
[resource]
|
||||
resource_name = "Aspect of Bees"
|
||||
id = 30
|
||||
spell_type = 8
|
||||
level = 10
|
||||
rank = 1
|
||||
icon = ExtResource( 3 )
|
||||
needs_target = true
|
||||
text_name = "Aspect of Bees"
|
||||
text_description = "Range: 26m.
|
||||
Instant.
|
||||
Cooldown: {2}
|
||||
Deals 460 to 540 damage every 3 sec, healing you for 80% of the damage."
|
||||
cooldown_cooldown = 21.0
|
||||
target_aura_applys = [ ExtResource( 2 ) ]
|
||||
range = true
|
||||
range_range = 26.0
|
||||
cost_type = 480
|
||||
give_resource_type = 480
|
||||
aoe_targetType = -1910718371
|
||||
aoe_movement_type = 1611610192
|
||||
aoe_colliderType = -298046312
|
||||
projectile_type = 1065353216
|
||||
script = ExtResource( 1 )
|
43
game/data/spells/31_overload.tres
Normal file
43
game/data/spells/31_overload.tres
Normal file
@ -0,0 +1,43 @@
|
||||
[gd_resource type="Spell" load_steps=7 format=2]
|
||||
|
||||
[ext_resource path="res://data/icons/naturalist/amplify_pain.tres" type="Texture" id=1]
|
||||
[ext_resource path="res://scripts/resources/spell_effect_visual_basic.gd" type="Script" id=2]
|
||||
[ext_resource path="res://scripts/spells/amplify_pain.gd" type="Script" id=3]
|
||||
[ext_resource path="res://data/spell_effects/nature/AmplifyPain.tscn" type="PackedScene" id=4]
|
||||
[ext_resource path="res://data/spell_effects/nature/NatureCast.tscn" type="PackedScene" id=5]
|
||||
|
||||
[sub_resource type="SpellEffectVisual" id=1]
|
||||
script = ExtResource( 2 )
|
||||
spell_cast_effect_left_hand = ExtResource( 5 )
|
||||
spell_cast_effect_right_hand = ExtResource( 5 )
|
||||
torso_aura_effect_time = 0.0
|
||||
root_aura_effect_time = 0.0
|
||||
torso_spell_cast_finish_effect = ExtResource( 4 )
|
||||
torso_spell_cast_finish_effect_time = 0.4
|
||||
root_spell_cast_finish_effect_time = 1.0
|
||||
|
||||
[resource]
|
||||
resource_name = "Overload"
|
||||
id = 31
|
||||
spell_type = 8
|
||||
level = 10
|
||||
icon = ExtResource( 1 )
|
||||
visual_spell_effects = SubResource( 1 )
|
||||
text_name = "Overload"
|
||||
text_description = "Range: 26m.
|
||||
Channeled. Free.
|
||||
Causes your dots to deal 10% more damage."
|
||||
range = true
|
||||
range_range = 26.0
|
||||
cast = true
|
||||
cast_cast_time = 1.5
|
||||
damage = true
|
||||
damage_type = 16
|
||||
damage_min = 130
|
||||
damage_max = 150
|
||||
cost_type = 476
|
||||
aoe_targetType = -1910718371
|
||||
aoe_movement_type = 1611610192
|
||||
aoe_colliderType = 1065353216
|
||||
projectile_type = 882743928
|
||||
script = ExtResource( 3 )
|
9
game/data/voxel_libraries/1_main_lib_merger.tres
Normal file
9
game/data/voxel_libraries/1_main_lib_merger.tres
Normal file
@ -0,0 +1,9 @@
|
||||
[gd_resource type="VoxelmanLibraryMerger" load_steps=3 format=2]
|
||||
|
||||
[ext_resource path="res://data/voxel_libraries/merger_library_mat.tres" type="Material" id=1]
|
||||
[ext_resource path="res://data/voxel_libraries/merger_prop_mat.tres" type="Material" id=2]
|
||||
|
||||
[resource]
|
||||
material = ExtResource( 1 )
|
||||
prop_material = ExtResource( 2 )
|
||||
texture_flags = 1
|
14
game/data/voxel_libraries/2_main_lib_merger_empty.tres
Normal file
14
game/data/voxel_libraries/2_main_lib_merger_empty.tres
Normal file
@ -0,0 +1,14 @@
|
||||
[gd_resource type="VoxelmanLibraryMerger" load_steps=7 format=2]
|
||||
|
||||
[ext_resource path="res://data/voxel_libraries/merger_library_mat.tres" type="Material" id=1]
|
||||
[ext_resource path="res://data/voxel_libraries/merger_prop_mat.tres" type="Material" id=2]
|
||||
[ext_resource path="res://data/voxel_surfaces/2_test.tres" type="VoxelSurfaceMerger" id=3]
|
||||
[ext_resource path="res://data/voxel_surfaces/1_stone.tres" type="VoxelSurfaceMerger" id=4]
|
||||
[ext_resource path="res://data/voxel_surfaces/3_test2.tres" type="VoxelSurfaceMerger" id=5]
|
||||
[ext_resource path="res://data/voxel_surfaces/0_air.tres" type="VoxelSurfaceMerger" id=7]
|
||||
|
||||
[resource]
|
||||
material = ExtResource( 1 )
|
||||
prop_material = ExtResource( 2 )
|
||||
texture_flags = 1
|
||||
voxel_surfaces = [ ExtResource( 7 ), ExtResource( 4 ), ExtResource( 3 ), ExtResource( 5 ) ]
|
8
game/data/voxel_libraries/main_library.tres
Normal file
8
game/data/voxel_libraries/main_library.tres
Normal file
@ -0,0 +1,8 @@
|
||||
[gd_resource type="VoxelmanLibrarySimple" load_steps=3 format=2]
|
||||
|
||||
[ext_resource path="res://data/materials/voxelman.tres" type="Material" id=1]
|
||||
[ext_resource path="res://data/models/Material_003.material" type="Material" id=2]
|
||||
|
||||
[resource]
|
||||
material = ExtResource( 1 )
|
||||
prop_material = ExtResource( 2 )
|
41
game/data/voxel_libraries/main_library_2.tres
Normal file
41
game/data/voxel_libraries/main_library_2.tres
Normal file
@ -0,0 +1,41 @@
|
||||
[gd_resource type="VoxelmanLibrarySimple" load_steps=7 format=2]
|
||||
|
||||
[ext_resource path="res://data/models/Material_003.material" type="Material" id=1]
|
||||
[ext_resource path="res://data/materials/voxelman2.tres" type="Material" id=2]
|
||||
|
||||
[sub_resource type="VoxelSurfaceSimple" id=1]
|
||||
resource_name = "Air"
|
||||
voxel_name = "Air"
|
||||
transparent = true
|
||||
|
||||
[sub_resource type="VoxelSurfaceSimple" id=2]
|
||||
resource_name = "Ground"
|
||||
id = 1
|
||||
voxel_name = "Ground"
|
||||
top_atlas_x = 5
|
||||
bottom_atlas_x = 5
|
||||
side_atlas_x = 5
|
||||
|
||||
[sub_resource type="VoxelSurfaceSimple" id=3]
|
||||
resource_name = "TestM"
|
||||
id = 2
|
||||
voxel_name = "TestM"
|
||||
top_atlas_x = 1
|
||||
top_atlas_y = 1
|
||||
bottom_atlas_x = 1
|
||||
bottom_atlas_y = 1
|
||||
side_atlas_y = 1
|
||||
|
||||
[sub_resource type="VoxelSurfaceSimple" id=4]
|
||||
resource_name = "TestM2"
|
||||
id = 3
|
||||
voxel_name = "TestM2"
|
||||
top_atlas_x = 4
|
||||
bottom_atlas_x = 4
|
||||
side_atlas_x = 4
|
||||
|
||||
[resource]
|
||||
material = ExtResource( 2 )
|
||||
prop_material = ExtResource( 1 )
|
||||
atlas_rows = 2
|
||||
voxel_surfaces = [ SubResource( 1 ), SubResource( 2 ), SubResource( 3 ), SubResource( 4 ) ]
|
9
game/data/voxel_libraries/main_library_3.tres
Normal file
9
game/data/voxel_libraries/main_library_3.tres
Normal file
@ -0,0 +1,9 @@
|
||||
[gd_resource type="VoxelmanLibrarySimple" load_steps=3 format=2]
|
||||
|
||||
[ext_resource path="res://data/materials/voxelman2.tres" type="Material" id=1]
|
||||
[ext_resource path="res://data/models/Material_003.material" type="Material" id=2]
|
||||
|
||||
[resource]
|
||||
material = ExtResource( 1 )
|
||||
prop_material = ExtResource( 2 )
|
||||
atlas_rows = 2
|
22
game/data/voxel_libraries/merger_library_mat.tres
Normal file
22
game/data/voxel_libraries/merger_library_mat.tres
Normal file
File diff suppressed because one or more lines are too long
10
game/data/voxel_libraries/merger_prop_mat.tres
Normal file
10
game/data/voxel_libraries/merger_prop_mat.tres
Normal file
@ -0,0 +1,10 @@
|
||||
[gd_resource type="SpatialMaterial" load_steps=2 format=2]
|
||||
|
||||
[ext_resource path="res://data/voxel_textures/test_01.png" type="Texture" id=1]
|
||||
|
||||
[resource]
|
||||
resource_name = "Material.003"
|
||||
vertex_color_use_as_albedo = true
|
||||
albedo_texture = ExtResource( 1 )
|
||||
metallic = 0.5
|
||||
roughness = 0.0960784
|
6
game/data/voxel_surfaces/0_air.tres
Normal file
6
game/data/voxel_surfaces/0_air.tres
Normal file
@ -0,0 +1,6 @@
|
||||
[gd_resource type="VoxelSurfaceMerger" format=2]
|
||||
|
||||
[resource]
|
||||
resource_name = "Air"
|
||||
voxel_name = "Air"
|
||||
transparent = true
|
11
game/data/voxel_surfaces/1_stone.tres
Normal file
11
game/data/voxel_surfaces/1_stone.tres
Normal file
@ -0,0 +1,11 @@
|
||||
[gd_resource type="VoxelSurfaceMerger" load_steps=2 format=2]
|
||||
|
||||
[ext_resource path="res://data/voxel_textures/test_11.png" type="Texture" id=1]
|
||||
|
||||
[resource]
|
||||
resource_name = "Stone"
|
||||
id = 1
|
||||
voxel_name = "Stone"
|
||||
texture_top = ExtResource( 1 )
|
||||
texture_bottom = ExtResource( 1 )
|
||||
texture_side = ExtResource( 1 )
|
12
game/data/voxel_surfaces/2_test.tres
Normal file
12
game/data/voxel_surfaces/2_test.tres
Normal file
@ -0,0 +1,12 @@
|
||||
[gd_resource type="VoxelSurfaceMerger" load_steps=3 format=2]
|
||||
|
||||
[ext_resource path="res://data/voxel_textures/test_09.png" type="Texture" id=1]
|
||||
[ext_resource path="res://data/voxel_textures/test_06.png" type="Texture" id=2]
|
||||
|
||||
[resource]
|
||||
resource_name = "Test"
|
||||
id = 2
|
||||
voxel_name = "Test"
|
||||
texture_top = ExtResource( 1 )
|
||||
texture_bottom = ExtResource( 2 )
|
||||
texture_side = ExtResource( 2 )
|
11
game/data/voxel_surfaces/3_test2.tres
Normal file
11
game/data/voxel_surfaces/3_test2.tres
Normal file
@ -0,0 +1,11 @@
|
||||
[gd_resource type="VoxelSurfaceMerger" load_steps=2 format=2]
|
||||
|
||||
[ext_resource path="res://data/voxel_textures/test_03.png" type="Texture" id=1]
|
||||
|
||||
[resource]
|
||||
resource_name = "Test2"
|
||||
id = 3
|
||||
voxel_name = "Test2"
|
||||
texture_top = ExtResource( 1 )
|
||||
texture_bottom = ExtResource( 1 )
|
||||
texture_side = ExtResource( 1 )
|
10
game/data/xp/xp_data.tres
Normal file
10
game/data/xp/xp_data.tres
Normal file
@ -0,0 +1,10 @@
|
||||
[gd_resource type="XPData" format=2]
|
||||
|
||||
[resource]
|
||||
level_1 = 300
|
||||
level_2 = 600
|
||||
level_3 = 1000
|
||||
level_4 = 10000
|
||||
level_5 = 200000
|
||||
level_6 = 400000
|
||||
level_7 = 600000
|
9
game/debug/FreeLookCam.tscn
Normal file
9
game/debug/FreeLookCam.tscn
Normal file
@ -0,0 +1,9 @@
|
||||
[gd_scene load_steps=2 format=2]
|
||||
|
||||
[ext_resource path="res://debug/FreeLookCamera.gd" type="Script" id=1]
|
||||
|
||||
[node name="Camera" type="Camera"]
|
||||
transform = Transform( 0.844995, 0.305893, -0.438648, -0.0119927, 0.830883, 0.556318, 0.534639, -0.464826, 0.705761, -7.76488, 10.4889, 10.3045 )
|
||||
v_offset = 0.27
|
||||
current = true
|
||||
script = ExtResource( 1 )
|
98
game/debug/FreeLookCamera.gd
Normal file
98
game/debug/FreeLookCamera.gd
Normal file
@ -0,0 +1,98 @@
|
||||
extends Camera
|
||||
|
||||
const SPEED = 10
|
||||
const TURN_SENSITIVITY = 0.15
|
||||
|
||||
var x_rot : float = 0.0
|
||||
var y_rot : float = 0.0
|
||||
|
||||
var mouse_right_down : bool = false
|
||||
|
||||
var input_dir : Vector2 = Vector2()
|
||||
|
||||
var key_left : bool = false
|
||||
var key_right : bool = false
|
||||
var key_up : bool = false
|
||||
var key_down : bool = false
|
||||
|
||||
var cursor_grabbed : bool = false
|
||||
var last_cursor_pos : Vector2 = Vector2()
|
||||
|
||||
func _physics_process(delta):
|
||||
process_input(delta)
|
||||
process_movement(delta)
|
||||
|
||||
func process_input(delta: float) -> void:
|
||||
var key_dir = Vector2()
|
||||
|
||||
if key_up:
|
||||
key_dir.y -= 1
|
||||
if key_down:
|
||||
key_dir.y += 1
|
||||
if key_left:
|
||||
key_dir.x -= 1
|
||||
if key_right:
|
||||
key_dir.x += 1
|
||||
|
||||
input_dir = key_dir
|
||||
|
||||
if input_dir.length_squared() > 0.1:
|
||||
input_dir = input_dir.normalized()
|
||||
|
||||
func _unhandled_input(event : InputEvent) -> void:
|
||||
if event is InputEventMouseButton and event.button_index == BUTTON_RIGHT and event.device != -1:
|
||||
mouse_right_down = event.pressed
|
||||
|
||||
if event is InputEventKey:
|
||||
if event.scancode == KEY_W:
|
||||
key_up = event.pressed
|
||||
if event.scancode == KEY_S:
|
||||
key_down = event.pressed
|
||||
if event.scancode == KEY_A:
|
||||
key_left = event.pressed
|
||||
if event.scancode == KEY_D:
|
||||
key_right = event.pressed
|
||||
|
||||
if event is InputEventMouseMotion and mouse_right_down and event.device != -1:
|
||||
rotate_delta(-event.relative.x, -event.relative.y)
|
||||
|
||||
update_cursor_mode()
|
||||
|
||||
func process_movement(delta):
|
||||
if input_dir.x > 0.1 or input_dir.y > 0.1 or input_dir.x < -0.1 or input_dir.y < -0.1:
|
||||
var forward = transform.basis.xform(Vector3(0, 0, 1))
|
||||
|
||||
var right = forward.cross(Vector3(0, 1, 0)) * -input_dir.x
|
||||
forward *= input_dir.y #only potentially make it zero after getting the right vector
|
||||
|
||||
var dir : Vector3 = forward
|
||||
dir += right
|
||||
|
||||
if dir.length_squared() > 0.1:
|
||||
dir = dir.normalized()
|
||||
translation += dir * delta * SPEED
|
||||
|
||||
func update_cursor_mode():
|
||||
if mouse_right_down:
|
||||
if not cursor_grabbed:
|
||||
cursor_grabbed = true
|
||||
last_cursor_pos = get_viewport().get_mouse_position()
|
||||
Input.set_mouse_mode(Input.MOUSE_MODE_CAPTURED)
|
||||
else:
|
||||
if cursor_grabbed:
|
||||
cursor_grabbed = false
|
||||
Input.set_mouse_mode(Input.MOUSE_MODE_VISIBLE)
|
||||
get_viewport().warp_mouse(last_cursor_pos)
|
||||
|
||||
func rotate_delta(x_delta : float, y_delta : float) -> void:
|
||||
x_rot += y_delta * TURN_SENSITIVITY
|
||||
y_rot += x_delta * TURN_SENSITIVITY
|
||||
|
||||
x_rot = clamp(x_rot, -90, 90)
|
||||
|
||||
if y_rot >= 360:
|
||||
y_rot = 0
|
||||
if y_rot < 0:
|
||||
y_rot = 360
|
||||
|
||||
rotation_degrees = Vector3(x_rot, y_rot, 0.0)
|
3
game/default_bus_layout.tres
Normal file
3
game/default_bus_layout.tres
Normal file
@ -0,0 +1,3 @@
|
||||
[gd_resource type="AudioBusLayout" format=2]
|
||||
|
||||
[resource]
|
6
game/dev/character_dev_mat.tres
Normal file
6
game/dev/character_dev_mat.tres
Normal file
@ -0,0 +1,6 @@
|
||||
[gd_resource type="ShaderMaterial" load_steps=2 format=2]
|
||||
|
||||
[ext_resource path="res://data/shaders/1_charactershader.tres" type="Shader" id=1]
|
||||
|
||||
[resource]
|
||||
shader = ExtResource( 1 )
|
96
game/dev/shader_character_dev.tscn
Normal file
96
game/dev/shader_character_dev.tscn
Normal file
@ -0,0 +1,96 @@
|
||||
[gd_scene load_steps=11 format=2]
|
||||
|
||||
[ext_resource path="res://data/models/armature_model_orig_v2.tscn" type="PackedScene" id=1]
|
||||
[ext_resource path="res://data/voxel_libraries/main_library_2.tres" type="VoxelmanLibrarySimple" id=2]
|
||||
[ext_resource path="res://prop_tool/dada.tres" type="PropData" id=3]
|
||||
[ext_resource path="res://voxelman/transvoxel_mesher/TVVoxelWorld.gd" type="Script" id=4]
|
||||
[ext_resource path="res://dungeon_generator/MainDungeonGenerator.gd" type="Script" id=5]
|
||||
[ext_resource path="res://dev/character_dev_mat.tres" type="Material" id=6]
|
||||
|
||||
[sub_resource type="VoxelmanLevelGenerator" id=1]
|
||||
script = ExtResource( 5 )
|
||||
prop = ExtResource( 3 )
|
||||
gen_type = 1
|
||||
_level_seed = 35
|
||||
_spawn_mobs = false
|
||||
|
||||
[sub_resource type="AnimationNodeStateMachinePlayback" id=2]
|
||||
|
||||
[sub_resource type="ProceduralSky" id=3]
|
||||
sky_top_color = Color( 0.0431373, 0.00784314, 0.0666667, 1 )
|
||||
sky_horizon_color = Color( 0.27451, 0.447059, 0.427451, 1 )
|
||||
sky_curve = 0.263535
|
||||
sky_energy = 0.3
|
||||
ground_bottom_color = Color( 0.196078, 0.152941, 0.152941, 1 )
|
||||
ground_horizon_color = Color( 0.223529, 0.192157, 0.164706, 1 )
|
||||
ground_curve = 0.101965
|
||||
ground_energy = 0.4
|
||||
sun_color = Color( 0.619608, 0.47451, 0.113725, 1 )
|
||||
sun_latitude = 37.43
|
||||
sun_longitude = -8.09
|
||||
sun_angle_min = 0.0
|
||||
sun_angle_max = 23.15
|
||||
sun_energy = 9.7
|
||||
texture_size = 0
|
||||
|
||||
[sub_resource type="Environment" id=4]
|
||||
background_mode = 2
|
||||
background_sky = SubResource( 3 )
|
||||
ambient_light_color = Color( 0.737255, 0.737255, 0.737255, 1 )
|
||||
fog_enabled = true
|
||||
fog_color = Color( 0.278431, 0.360784, 0.360784, 1 )
|
||||
fog_sun_color = Color( 0.113725, 0.568627, 0.827451, 1 )
|
||||
fog_depth_begin = 34.0
|
||||
fog_depth_end = 257.9
|
||||
fog_depth_curve = 1.18921
|
||||
tonemap_mode = 2
|
||||
tonemap_exposure = 0.83
|
||||
auto_exposure_max_luma = 7.33
|
||||
ss_reflections_enabled = true
|
||||
ssao_enabled = true
|
||||
glow_levels/3 = false
|
||||
glow_intensity = 1.6
|
||||
glow_strength = 1.1
|
||||
glow_bloom = 0.1
|
||||
glow_hdr_luminance_cap = 1.0
|
||||
adjustment_enabled = true
|
||||
adjustment_contrast = 1.05
|
||||
|
||||
[node name="World" type="VoxelWorld" groups=[
|
||||
"save",
|
||||
]]
|
||||
library = ExtResource( 2 )
|
||||
level_generator = SubResource( 1 )
|
||||
voxel_scale = 3.0
|
||||
chunk_spawn_range = 2
|
||||
script = ExtResource( 4 )
|
||||
_level_seed = 35
|
||||
show_loading_screen = false
|
||||
|
||||
[node name="character" parent="." instance=ExtResource( 1 )]
|
||||
refresh_in_editor = false
|
||||
automatic_build = false
|
||||
use_threads = false
|
||||
material = ExtResource( 6 )
|
||||
|
||||
[node name="AnimationTree" parent="character" index="1"]
|
||||
parameters/playback = SubResource( 2 )
|
||||
|
||||
[node name="WorldEnvironment" type="WorldEnvironment" parent="."]
|
||||
environment = SubResource( 4 )
|
||||
|
||||
[node name="DirectionalLight" type="DirectionalLight" parent="."]
|
||||
transform = Transform( -0.797163, 0.45442, 0.397535, 0, -0.658427, 0.752644, 0.603765, 0.59998, 0.524873, 0, 18.834, 0 )
|
||||
light_energy = 1.4
|
||||
directional_shadow_normal_bias = 0.1
|
||||
|
||||
[node name="DirectionalLight2" type="DirectionalLight" parent="."]
|
||||
transform = Transform( -0.797163, 0.523191, -0.301335, 0, 0.499093, 0.866548, 0.603765, 0.69078, -0.397858, 0, 18.834, 0 )
|
||||
light_energy = 0.4
|
||||
light_specular = 0.0
|
||||
directional_shadow_normal_bias = 0.1
|
||||
|
||||
[node name="OmniLight" type="OmniLight" parent="."]
|
||||
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -0.30692, 2.07707, 1.61396 )
|
||||
|
||||
[editable path="character"]
|
191
game/dungeon_generator/DungeonGeneratorScene.gd
Normal file
191
game/dungeon_generator/DungeonGeneratorScene.gd
Normal file
@ -0,0 +1,191 @@
|
||||
extends Navigation2D
|
||||
|
||||
export (PackedScene) var room : PackedScene
|
||||
export (NodePath) var map_path : NodePath
|
||||
|
||||
var map
|
||||
|
||||
var tile_size : int = 3
|
||||
var num_rooms : int = 50
|
||||
var min_size : int = 9
|
||||
var max_size : int = 20
|
||||
var hspread : float = 400
|
||||
var cull : float = 0.5
|
||||
|
||||
var path : AStar
|
||||
|
||||
func _ready():
|
||||
map = get_node(map_path)
|
||||
|
||||
randomize()
|
||||
make_rooms()
|
||||
|
||||
func make_rooms():
|
||||
for i in range(num_rooms):
|
||||
var pos : Vector2 = Vector2(rand_range(-hspread, hspread), 0)
|
||||
var r : Node = room.instance()
|
||||
var w = min_size + randi() % (max_size - min_size)
|
||||
var h = min_size + randi() % (max_size - min_size)
|
||||
|
||||
r.make_room(pos, Vector2(w, h)* tile_size)
|
||||
$Rooms.add_child(r)
|
||||
r.owner = $Rooms
|
||||
|
||||
yield(get_tree().create_timer(1.1), 'timeout')
|
||||
#cull rooms
|
||||
var room_positions : Array = []
|
||||
for room in $Rooms.get_children():
|
||||
if randf() < cull:
|
||||
room.queue_free()
|
||||
else:
|
||||
room.mode = RigidBody2D.MODE_STATIC
|
||||
room_positions.append(Vector3(room.position.x, room.position.y, 0))
|
||||
|
||||
yield(get_tree(), 'idle_frame')
|
||||
|
||||
#generate MST
|
||||
path = find_mst(room_positions)
|
||||
|
||||
make_map()
|
||||
|
||||
|
||||
func a_draw():
|
||||
for room in $Rooms.get_children():
|
||||
draw_rect(Rect2(room.position - room.size, room.size * 2),
|
||||
Color(0, 1, 0), false)
|
||||
|
||||
if path:
|
||||
for p in path.get_points():
|
||||
for c in path.get_point_connections(p):
|
||||
var pp = path.get_point_position(p)
|
||||
var cp = path.get_point_position(c)
|
||||
|
||||
draw_line(Vector2(pp.x, pp.y), Vector2(cp.x, cp.y), Color(1, 1, 0), 15, true)
|
||||
|
||||
func a_process(delta):
|
||||
update()
|
||||
|
||||
func a_input(event):
|
||||
if event.is_action_pressed('ui_select'):
|
||||
for n in $Rooms.get_children():
|
||||
n.queue_free()
|
||||
|
||||
path = null
|
||||
|
||||
make_rooms()
|
||||
|
||||
if event.is_action_pressed('ui_focus_next'):
|
||||
make_map()
|
||||
|
||||
func find_mst(nodes : Array) -> AStar:
|
||||
#Prim's algorithm
|
||||
var path = AStar.new()
|
||||
path.add_point(path.get_available_point_id(), nodes.pop_front())
|
||||
|
||||
while nodes:
|
||||
var min_dist = INF
|
||||
var min_p = null
|
||||
var p = null
|
||||
|
||||
for p1 in path.get_points():
|
||||
p1 = path.get_point_position(p1)
|
||||
|
||||
for p2 in nodes:
|
||||
if p1.distance_to(p2) < min_dist:
|
||||
min_dist = p1.distance_to(p2)
|
||||
min_p = p2
|
||||
p = p1
|
||||
|
||||
var n = path.get_available_point_id()
|
||||
path.add_point(n, min_p)
|
||||
path.connect_points(path.get_closest_point(p), n)
|
||||
nodes.erase(min_p)
|
||||
|
||||
return path
|
||||
|
||||
func make_map() -> void:
|
||||
map.clear()
|
||||
|
||||
#for x in range(0, 200):
|
||||
# for y in range(0, 200):
|
||||
# tile_map.set_cell(x, y, 0)
|
||||
|
||||
#fill tilemap with walls
|
||||
#var full_rect = Rect2()
|
||||
#carve the rooms
|
||||
var corridors = []
|
||||
var mob_count = 0
|
||||
var player_spawned = false
|
||||
for room in $Rooms.get_children():
|
||||
var top_left = room.position.floor()
|
||||
var bottom_right = (top_left + room.size).floor()
|
||||
|
||||
for x in range(top_left.x, bottom_right.x):
|
||||
for z in range(top_left.y, bottom_right.y):
|
||||
for y in range(0, 2):
|
||||
map.draw_voxel_data_point(Vector3(x, y, z), 0, randi() % 255)
|
||||
|
||||
|
||||
#connection
|
||||
#var p = path.get_closest_point(Vector3(room.position.x, room.position.y, 0))
|
||||
|
||||
#for conn in path.get_point_connections(p):
|
||||
# if not conn in corridors:
|
||||
# var start = Vector2(path.get_point_position(p).x, path.get_point_position(p).y).ceil()
|
||||
# var end = Vector2(path.get_point_position(conn).x, path.get_point_position(conn).y).ceil()
|
||||
|
||||
# carve_path(start, end)
|
||||
|
||||
#corridors.append(p)
|
||||
|
||||
var pos : Vector2 = room.position + (room.size / 2).floor()
|
||||
if not player_spawned:
|
||||
#Entities.spawn_player(1, Vector3(pos.x, 2, pos.y))
|
||||
player_spawned = true
|
||||
else:
|
||||
if mob_count < 20:
|
||||
Entities.spawn_mob(1, randi() % 3, Vector3(pos.x, 2, pos.y))
|
||||
mob_count += 1
|
||||
|
||||
map.build()
|
||||
|
||||
func carve_path(pos1, pos2):
|
||||
var x_diff = sign(pos2.x - pos1.x)
|
||||
var y_diff = sign(pos2.y - pos1.y)
|
||||
|
||||
if x_diff == 0:
|
||||
x_diff = pow(-1.0, randi() % 2)
|
||||
if y_diff == 0:
|
||||
y_diff = pow(-1.0, randi() % 2)
|
||||
|
||||
var x_y = pos1
|
||||
var y_x = pos2
|
||||
|
||||
#if (randi() % 2) > 0:
|
||||
# x_y = pos2
|
||||
# y_x = pos1
|
||||
|
||||
for x in range(pos1.x, pos2.x, x_diff):
|
||||
for n in range(5):
|
||||
var tile = 1
|
||||
|
||||
if n == 0 or n == 4:
|
||||
tile = 0
|
||||
|
||||
# if tile_map.get_cell(x, x_y.y + (n * y_diff)) != 1:
|
||||
# tile_map.set_cell(x, x_y.y + (n * y_diff), tile)
|
||||
|
||||
for y in range(pos1.y, pos2.y, y_diff):
|
||||
for n in range(5):
|
||||
var tile = 1
|
||||
|
||||
if n == 0 or n == 4:
|
||||
tile = 0
|
||||
|
||||
# if tile_map.get_cell(y_x.x + (n * x_diff), y) != 1:
|
||||
# tile_map.set_cell(y_x.x + (n * x_diff), y, tile)
|
||||
|
||||
|
||||
|
||||
|
||||
|
14
game/dungeon_generator/DungeonGeneratorScene.tscn
Normal file
14
game/dungeon_generator/DungeonGeneratorScene.tscn
Normal file
@ -0,0 +1,14 @@
|
||||
[gd_scene load_steps=3 format=2]
|
||||
|
||||
[ext_resource path="res://dungeon_generator/DungeonGeneratorScene.gd" type="Script" id=1]
|
||||
[ext_resource path="res://dungeon_generator/Room.tscn" type="PackedScene" id=2]
|
||||
|
||||
[node name="DungeonGenerator" type="Navigation2D"]
|
||||
script = ExtResource( 1 )
|
||||
room = ExtResource( 2 )
|
||||
|
||||
[node name="Rooms" type="Node" parent="."]
|
||||
|
||||
[node name="Camera2D" type="Camera2D" parent="."]
|
||||
current = true
|
||||
zoom = Vector2( 10, 10 )
|
293
game/dungeon_generator/MainDungeonGenerator.gd
Normal file
293
game/dungeon_generator/MainDungeonGenerator.gd
Normal file
@ -0,0 +1,293 @@
|
||||
tool
|
||||
extends VoxelmanLevelGenerator
|
||||
class_name MainDungeonGenerator
|
||||
|
||||
enum GenType {
|
||||
TEST = 0, NORMAL = 1, NOISE3D = 2, ANL = 3
|
||||
}
|
||||
|
||||
|
||||
export(PropData) var prop : PropData
|
||||
export(MeshDataResource) var prop_mesht : MeshDataResource
|
||||
|
||||
|
||||
export(int) var gen_type : int = GenType.NORMAL
|
||||
export(int) var _level_seed : int
|
||||
export(bool) var _spawn_mobs : bool
|
||||
|
||||
var _world : VoxelWorld
|
||||
|
||||
func setup(world : VoxelWorld, level_seed : int, spawn_mobs : bool) -> void:
|
||||
_level_seed = level_seed
|
||||
_world = world
|
||||
_spawn_mobs = spawn_mobs
|
||||
|
||||
func _generate_chunk(chunk : VoxelChunk) -> void:
|
||||
if gen_type == GenType.NORMAL:
|
||||
generate_terrarin(chunk)
|
||||
elif gen_type == GenType.NOISE3D:
|
||||
generate_noise3d_terrarin(chunk)
|
||||
else:
|
||||
generate_test(chunk)
|
||||
|
||||
|
||||
func generate_terrarin(chunk : VoxelChunk) -> void:
|
||||
var buffer : VoxelChunk = chunk.get_buffer()
|
||||
buffer.create(int(chunk.size_x) + 1, int(chunk.size_y) + 1, int(chunk.size_z) + 1)
|
||||
|
||||
var noise : OpenSimplexNoise = OpenSimplexNoise.new()
|
||||
noise.seed = 10 * _level_seed
|
||||
noise.octaves = 4
|
||||
noise.period = 180.0
|
||||
noise.persistence = 0.8
|
||||
|
||||
var terr_noise : OpenSimplexNoise = OpenSimplexNoise.new()
|
||||
terr_noise.seed = 10 * 321 + 112 * _level_seed
|
||||
terr_noise.octaves = 4
|
||||
terr_noise.period = 20.0
|
||||
terr_noise.persistence = 0.9
|
||||
|
||||
var det_noise : OpenSimplexNoise = OpenSimplexNoise.new()
|
||||
det_noise.seed = 10 * 3231 + 112 * _level_seed
|
||||
det_noise.octaves = 6
|
||||
det_noise.period = 10.0
|
||||
det_noise.persistence = 0.3
|
||||
|
||||
for x in range(0, chunk.size_x + 1):
|
||||
for z in range(0, chunk.size_z + 1):
|
||||
var val : float = noise.get_noise_2d(x + (chunk.position_x * chunk.size_x), z + (chunk.position_z * chunk.size_z))
|
||||
val *= val
|
||||
val *= 100
|
||||
val += 2
|
||||
|
||||
var tv : float = terr_noise.get_noise_2d(x + (chunk.position_x * chunk.size_x), z + (chunk.position_z * chunk.size_z))
|
||||
tv *= tv * tv
|
||||
val += tv * 2
|
||||
|
||||
var dval : float = noise.get_noise_2d(x + (chunk.position_x * chunk.size_x), z + (chunk.position_z * chunk.size_z))
|
||||
|
||||
val += dval * 6
|
||||
|
||||
var v : int = (int(val))
|
||||
|
||||
v -= chunk.position_y * (chunk.size_y)
|
||||
# var cmaxy : int = (chunk.position_y + 1) * chunk.size_y
|
||||
|
||||
if v > chunk.size_y + 1:
|
||||
v = chunk.size_y + 1
|
||||
|
||||
for y in range(0, v):
|
||||
seed(x + (chunk.position_x * chunk.size_x) + z + (chunk.position_z * chunk.size_z) + y + (chunk.position_y * chunk.size_y))
|
||||
|
||||
if v < 2:
|
||||
buffer.set_voxel(1, x, y, z, VoxelChunk.DEFAULT_CHANNEL_TYPE)
|
||||
elif v == 2:
|
||||
buffer.set_voxel(3, x, y, z, VoxelChunk.DEFAULT_CHANNEL_TYPE)
|
||||
else:
|
||||
buffer.set_voxel(2, x, y, z, VoxelChunk.DEFAULT_CHANNEL_TYPE)
|
||||
|
||||
# if y != v:
|
||||
# buffer.set_voxel(255, x, y, z, VoxelChunk.DEFAULT_CHANNEL_ISOLEVEL)
|
||||
# else:
|
||||
# randi() % 50 + 205
|
||||
buffer.set_voxel(int(255.0 * (val - int(val)) / 180.0) * 180, x, y, z, VoxelChunk.DEFAULT_CHANNEL_ISOLEVEL)
|
||||
# buffer.set_voxel(int(255.0 * (val - int(val))), x, y, z, VoxelChunk.DEFAULT_CHANNEL_ISOLEVEL)
|
||||
|
||||
# buffer.set_voxel(255.0 * int(90 * (val - int(val))) / 200.0, x, y, z, VoxelChunk.DEFAULT_CHANNEL_ISOLEVEL)
|
||||
# buffer.set_voxel(int(255.0 * (val - int(val)) / 180.0) * 180, x, y, z, VoxelChunk.DEFAULT_CHANNEL_ISOLEVEL)
|
||||
# buffer.set_voxel(int(255.0 * (int((val - int(val) * 100.0)) / 100.0)), x, y, z, VoxelChunk.DEFAULT_CHANNEL_ISOLEVEL)
|
||||
# print(val)
|
||||
# buffer.set_voxel(int(255.0 * (val - int(val))), x, y, z, VoxelChunk.DEFAULT_CHANNEL_ISOLEVEL)
|
||||
|
||||
# var t_noise : OpenSimplexNoise = OpenSimplexNoise.new()
|
||||
# t_noise.seed = 10 * 32331 + 1132
|
||||
# t_noise.octaves = 10
|
||||
# t_noise.period = 10.0
|
||||
# t_noise.persistence = 0.8
|
||||
#
|
||||
# for x in range(0, chunk.size_x + 1):
|
||||
# for y in range(0, chunk.size_y + 1):
|
||||
# for z in range(0, chunk.size_z + 1):
|
||||
# var val : float = t_noise.get_noise_3d(
|
||||
# x + (chunk.position_x * chunk.size_x),
|
||||
# y + (chunk.position_y * chunk.size_y),
|
||||
# z + (chunk.position_z * chunk.size_z))
|
||||
#
|
||||
# val *= val
|
||||
# val *= 100
|
||||
# val += 2
|
||||
#
|
||||
# if val > 3 and buffer.get_voxel(x, y, z, VoxelChunk.DEFAULT_CHANNEL_TYPE) == 0:
|
||||
# buffer.set_voxel(2, x, y, z, VoxelChunk.DEFAULT_CHANNEL_TYPE)
|
||||
# buffer.set_voxel(int(255.0 * (val - int(val))), x, y, z, VoxelChunk.DEFAULT_CHANNEL_ISOLEVEL)
|
||||
|
||||
# for x in range(0, chunk.size_x + 1):
|
||||
# for z in range(5, 7):
|
||||
# for y in range(0, 10):
|
||||
# var val : float = det_noise.get_noise_3d(
|
||||
# x + (chunk.position_x * chunk.size_x),
|
||||
# y + (chunk.position_y * chunk.size_y),
|
||||
# z + (chunk.position_z * chunk.size_z))
|
||||
#
|
||||
# val *= 10
|
||||
#
|
||||
# if val > 1:
|
||||
# val = 1
|
||||
#
|
||||
# buffer.set_voxel(3, x, y, z, VoxelChunk.DEFAULT_CHANNEL_TYPE)
|
||||
#
|
||||
# buffer.set_voxel(int(255.0 * val), x, y, z, VoxelChunk.DEFAULT_CHANNEL_ISOLEVEL)
|
||||
|
||||
var prop_data : VoxelChunkPropData = VoxelChunkPropData.new()
|
||||
prop_data.x = 10
|
||||
prop_data.y = 3
|
||||
prop_data.z = 10
|
||||
# prop_data.rotation = Vector3(randi() % 360, randi() % 360, randi() % 360)
|
||||
# prop_data.scale = Vector3(2, 2, 2)
|
||||
# prop_data.mesh = prop_mesht
|
||||
prop_data.prop = prop
|
||||
|
||||
chunk.add_prop(prop_data)
|
||||
|
||||
# generate_caves(chunk)
|
||||
|
||||
|
||||
# for i in range(5):
|
||||
# #var light : VoxelLight = VoxelLight.new()
|
||||
# randomize()
|
||||
# var color : Color = Color(randf(), randf(), randf())
|
||||
# var size : int = randi() % 5 + 5
|
||||
# var lx : int = (chunk.position_x * chunk.size_x) + (randi() % (chunk.size_x - 3))
|
||||
# var ly : int = (chunk.position_y * chunk.size_y) + (randi() % 6)
|
||||
# var lz : int = (chunk.position_z * chunk.size_z) + (randi() % (chunk.size_z - 3))
|
||||
## light.set_world_position((chunk.position_x * chunk.size_x) + 10, (chunk.position_y * chunk.size_y) + 10, (chunk.position_z * chunk.size_z) + 10)
|
||||
# _world.add_light(lx, ly, lz, size, color)
|
||||
|
||||
# chunk.bake_lights()
|
||||
|
||||
chunk.build()
|
||||
# chunk.draw_debug_voxel_lights()
|
||||
# chunk.draw_debug_voxels(2000)
|
||||
# chunk.draw_debug_voxel_lights()
|
||||
|
||||
if not Engine.editor_hint and chunk.position_y == 0 and _spawn_mobs:
|
||||
Entities.spawn_mob(1, randi() % 3, Vector3(chunk.position_x * chunk.size_x * chunk.voxel_scale - chunk.size_x / 2,\
|
||||
(chunk.position_y + 1) * chunk.size_y * chunk.voxel_scale, \
|
||||
chunk.position_z * chunk.size_z * chunk.voxel_scale - chunk.size_z / 2))
|
||||
|
||||
func generate_caves(chunk : VoxelChunk) -> void:
|
||||
var buffer : VoxelChunk = chunk.get_buffer()
|
||||
|
||||
var noise : OpenSimplexNoise = OpenSimplexNoise.new()
|
||||
noise.seed = 1230 * 3241 + 16
|
||||
noise.octaves = 3
|
||||
noise.period = 20.0
|
||||
noise.persistence = 0.9
|
||||
|
||||
for x in range(0, chunk.size_x + 1):
|
||||
for z in range(0, chunk.size_z + 1):
|
||||
for y in range(0, chunk.size_y + 1):
|
||||
# var val : float = noise.get_noise_2d(x + (chunk.position_x * chunk.size_x), z + (chunk.position_z * chunk.size_z))
|
||||
|
||||
|
||||
buffer.set_voxel(0, x, y, z, VoxelChunk.DEFAULT_CHANNEL_TYPE)
|
||||
|
||||
|
||||
func generate_test(chunk : VoxelChunk) ->void:
|
||||
var buffer : VoxelChunk = chunk.get_buffer()
|
||||
|
||||
buffer.create(40, 40, 40)
|
||||
|
||||
var i : int = 1
|
||||
|
||||
for y in range(4):
|
||||
for z in range(8):
|
||||
for x in range(8):
|
||||
spawn_equiv_class(buffer, i, x * 4 + 1, y * 4 + 1, z * 4 + 1)
|
||||
i += 1
|
||||
|
||||
# spawn_equiv_class(buffer,127, 4, 4, 4)
|
||||
|
||||
chunk.build()
|
||||
# chunk.draw_debug_voxels(2000)
|
||||
# chunk.draw_debug_voxel_lights()
|
||||
|
||||
|
||||
func spawn_equiv_class(buffer : VoxelChunk, cls : int, x : int, y : int, z : int) -> void:
|
||||
# var size : int = 100
|
||||
|
||||
if cls & VoxelMesherTransvoxel.VOXEL_ENTRY_MASK_000:
|
||||
buffer.set_voxel(1, x, y, z, VoxelChunk.DEFAULT_CHANNEL_TYPE)
|
||||
buffer.set_voxel(randi() % 255, x, y, z, VoxelChunk.DEFAULT_CHANNEL_ISOLEVEL)
|
||||
|
||||
if cls & VoxelMesherTransvoxel.VOXEL_ENTRY_MASK_100:
|
||||
buffer.set_voxel(1, x + 1, y, z, VoxelChunk.DEFAULT_CHANNEL_TYPE)
|
||||
buffer.set_voxel(randi() % 255, x + 1, y, z, VoxelChunk.DEFAULT_CHANNEL_ISOLEVEL)
|
||||
|
||||
if cls & VoxelMesherTransvoxel.VOXEL_ENTRY_MASK_001:
|
||||
buffer.set_voxel(1, x, y, z + 1, VoxelChunk.DEFAULT_CHANNEL_TYPE)
|
||||
buffer.set_voxel(randi() % 255, x, y, z + 1, VoxelChunk.DEFAULT_CHANNEL_ISOLEVEL)
|
||||
|
||||
if cls & VoxelMesherTransvoxel.VOXEL_ENTRY_MASK_101:
|
||||
buffer.set_voxel(1, x + 1, y, z + 1, VoxelChunk.DEFAULT_CHANNEL_TYPE)
|
||||
buffer.set_voxel(randi() % 255, x + 1, y, z + 1, VoxelChunk.DEFAULT_CHANNEL_ISOLEVEL)
|
||||
|
||||
if cls & VoxelMesherTransvoxel.VOXEL_ENTRY_MASK_010:
|
||||
buffer.set_voxel(1, x, y + 1, z, VoxelChunk.DEFAULT_CHANNEL_TYPE)
|
||||
buffer.set_voxel(randi() % 255, x, y + 1, z, VoxelChunk.DEFAULT_CHANNEL_ISOLEVEL)
|
||||
|
||||
if cls & VoxelMesherTransvoxel.VOXEL_ENTRY_MASK_110:
|
||||
buffer.set_voxel(1, x + 1, y + 1, z, VoxelChunk.DEFAULT_CHANNEL_TYPE)
|
||||
buffer.set_voxel(randi() % 255, x + 1, y + 1, z, VoxelChunk.DEFAULT_CHANNEL_ISOLEVEL)
|
||||
|
||||
if cls & VoxelMesherTransvoxel.VOXEL_ENTRY_MASK_011:
|
||||
buffer.set_voxel(1, x, y + 1, z + 1, VoxelChunk.DEFAULT_CHANNEL_TYPE)
|
||||
buffer.set_voxel(randi() % 255, x, y + 1, z + 1, VoxelChunk.DEFAULT_CHANNEL_ISOLEVEL)
|
||||
|
||||
if cls & VoxelMesherTransvoxel.VOXEL_ENTRY_MASK_111:
|
||||
buffer.set_voxel(1, x + 1, y + 1, z + 1, VoxelChunk.DEFAULT_CHANNEL_TYPE)
|
||||
buffer.set_voxel(randi() % 255, x + 1, y + 1, z + 1, VoxelChunk.DEFAULT_CHANNEL_ISOLEVEL)
|
||||
|
||||
func generate_noise3d_terrarin(chunk : VoxelChunk) -> void:
|
||||
var buffer : VoxelChunk = chunk.get_buffer()
|
||||
buffer.create(int(chunk.size_x) + 1, int(chunk.size_y) + 1, int(chunk.size_z) + 1)
|
||||
|
||||
var noise : OpenSimplexNoise = OpenSimplexNoise.new()
|
||||
noise.seed = 10 * 321 + 112
|
||||
noise.octaves = 4
|
||||
noise.period = 20.0
|
||||
noise.persistence = 0.9
|
||||
|
||||
for x in range(0, chunk.size_x + 1):
|
||||
for y in range(0, chunk.size_y + 1):
|
||||
for z in range(0, chunk.size_z + 1):
|
||||
var val : float = noise.get_noise_3d(
|
||||
x + (chunk.position_x * chunk.size_x),
|
||||
y + (chunk.position_y * chunk.size_y),
|
||||
z + (chunk.position_z * chunk.size_z))
|
||||
|
||||
val *= val
|
||||
val *= 100
|
||||
val += 2
|
||||
|
||||
if val > 4:
|
||||
buffer.set_voxel(3, x, y, z, VoxelChunk.DEFAULT_CHANNEL_TYPE)
|
||||
buffer.set_voxel(int(255.0 * (val - int(val))), x, y, z, VoxelChunk.DEFAULT_CHANNEL_ISOLEVEL)
|
||||
|
||||
# generate_random_ao(chunk)
|
||||
#warning-ignore:unused_variable
|
||||
for i in range(5):
|
||||
#var light : VoxelLight = VoxelLight.new()
|
||||
randomize()
|
||||
var color : Color = Color(randf(), randf(), randf())
|
||||
var size : int = randi() % 5 + 5
|
||||
var lx : int = (chunk.position_x * chunk.size_x) + (randi() % (chunk.size_x - 3))
|
||||
var ly : int = (chunk.position_y * chunk.size_y) + (randi() % 6)
|
||||
var lz : int = (chunk.position_z * chunk.size_z) + (randi() % (chunk.size_z - 3))
|
||||
# light.set_world_position((chunk.position_x * chunk.size_x) + 10, (chunk.position_y * chunk.size_y) + 10, (chunk.position_z * chunk.size_z) + 10)
|
||||
_world.add_light(lx, ly, lz, size, color)
|
||||
|
||||
chunk.bake_lights()
|
||||
|
||||
chunk.build()
|
||||
|
13
game/dungeon_generator/Room.gd
Normal file
13
game/dungeon_generator/Room.gd
Normal file
@ -0,0 +1,13 @@
|
||||
extends RigidBody2D
|
||||
|
||||
var size : Vector2
|
||||
|
||||
func make_room(_pos : Vector2, _size : Vector2):
|
||||
position = _pos
|
||||
size = _size
|
||||
|
||||
var s : RectangleShape2D = RectangleShape2D.new()
|
||||
s.custom_solver_bias = 0.75
|
||||
s.extents = size
|
||||
|
||||
$CollisionShape2D.shape = s
|
11
game/dungeon_generator/Room.tscn
Normal file
11
game/dungeon_generator/Room.tscn
Normal file
@ -0,0 +1,11 @@
|
||||
[gd_scene load_steps=2 format=2]
|
||||
|
||||
[ext_resource path="res://dungeon_generator/Room.gd" type="Script" id=1]
|
||||
|
||||
[node name="Room" type="RigidBody2D"]
|
||||
collision_layer = 524288
|
||||
collision_mask = 524288
|
||||
mode = 2
|
||||
script = ExtResource( 1 )
|
||||
|
||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
|
11
game/dungeon_generator/old_voxelmanlevelgenerator.tres
Normal file
11
game/dungeon_generator/old_voxelmanlevelgenerator.tres
Normal file
@ -0,0 +1,11 @@
|
||||
[gd_resource type="VoxelmanLevelGenerator" load_steps=3 format=2]
|
||||
|
||||
[ext_resource path="res://dungeon_generator/MainDungeonGenerator.gd" type="Script" id=1]
|
||||
[ext_resource path="res://prop_tool/dada.tres" type="PropData" id=2]
|
||||
|
||||
[resource]
|
||||
script = ExtResource( 1 )
|
||||
prop = ExtResource( 2 )
|
||||
gen_type = 1
|
||||
_level_seed = 35
|
||||
_spawn_mobs = false
|
Loading…
Reference in New Issue
Block a user