mirror of
https://github.com/Relintai/broken_seals_2d.git
synced 2024-11-11 20:35:10 +01:00
Update everything to the latest.
This commit is contained in:
parent
2adb7fa8c0
commit
bb8dad5d46
2
HEADS
2
HEADS
@ -1 +1 @@
|
|||||||
{"engine": "48edf6333029fc961528892af190201197b44c40", "world_generator": "58e38c07bd798a44232ecdfe02db038e3c434239", "entity_spell_system": "e9a7a92fb289ba1927a1b74c27eeb4d776e7a4a1", "ui_extensions": "271dcf89e9afe5cb6350de2f2433c8ebf8aba785", "texture_packer": "604c330188e220c15d10ea5bd545a6fc5aab0132", "fastnoise": "41b7ea05a1f7aa2b8ecddaa1fd739e64d6970f7e", "ess_data": "3bd637fdd3304b64a18287a49a6b7387acf2f5de"}
|
{"engine": "94658de1ffab02ad2eacbadf44f86c3654e3afcb", "world_generator": "459538d6b94b8c6ce6ece4cb626dabd6ae06fbc8", "entity_spell_system": "413031fb3c88cbede25c929fec85dfc673d36c45", "ui_extensions": "8a81cc53100c5a138fbaf927080410025c64c88e", "texture_packer": "189810d1648cd72e486b357c4523b4eb2a0d71f3", "fastnoise": "41b7ea05a1f7aa2b8ecddaa1fd739e64d6970f7e", "ess_data": "3bd637fdd3304b64a18287a49a6b7387acf2f5de"}
|
@ -66,7 +66,7 @@ remote func creceive_spawn_for(data: String, global_name : String, position: Vec
|
|||||||
entity.name = str(global_name)
|
entity.name = str(global_name)
|
||||||
entity.from_dict(parse_json(data))
|
entity.from_dict(parse_json(data))
|
||||||
|
|
||||||
entity.translation = position
|
entity.get_body().translation = position
|
||||||
|
|
||||||
Logger.info("Player spawned ")
|
Logger.info("Player spawned ")
|
||||||
|
|
||||||
@ -92,7 +92,7 @@ func spawn_networked_player_from_data(data : String, position : Vector2, network
|
|||||||
entity.from_dict(parse_json(data))
|
entity.from_dict(parse_json(data))
|
||||||
|
|
||||||
entity.set_network_master(network_owner)
|
entity.set_network_master(network_owner)
|
||||||
entity.translation = position
|
entity.get_body().translation = position
|
||||||
|
|
||||||
Logger.info("Player spawned ")
|
Logger.info("Player spawned ")
|
||||||
|
|
||||||
@ -112,7 +112,7 @@ puppet func spawn_owned_player(data : String, position : Vector2) -> void:
|
|||||||
|
|
||||||
entity.from_dict(parse_json(data))
|
entity.from_dict(parse_json(data))
|
||||||
entity.name = str(multiplayer.get_network_unique_id())
|
entity.name = str(multiplayer.get_network_unique_id())
|
||||||
entity.translation = position
|
entity.get_body().translation = position
|
||||||
entity.set_network_master(multiplayer.get_network_unique_id())
|
entity.set_network_master(multiplayer.get_network_unique_id())
|
||||||
|
|
||||||
Logger.info("Player spawned ")
|
Logger.info("Player spawned ")
|
||||||
@ -142,7 +142,7 @@ func load_player(file_name : String, position : Vector2, network_owner : int) ->
|
|||||||
|
|
||||||
entity.from_dict(load_file(file_name))
|
entity.from_dict(load_file(file_name))
|
||||||
|
|
||||||
entity.position = position
|
entity.get_body().position = position
|
||||||
# entity.initialize(createinfo)
|
# entity.initialize(createinfo)
|
||||||
entity.set_network_master(network_owner)
|
entity.set_network_master(network_owner)
|
||||||
|
|
||||||
@ -302,7 +302,7 @@ func spawn(createinfo : EntityCreateInfo, networked : bool, position : Vector2,
|
|||||||
spawn_parent.add_child(entity_node)
|
spawn_parent.add_child(entity_node)
|
||||||
entity_node.owner = spawn_parent
|
entity_node.owner = spawn_parent
|
||||||
|
|
||||||
entity_node.position = position
|
entity_node.get_body().position = position
|
||||||
|
|
||||||
entity_node.initialize(createinfo)
|
entity_node.initialize(createinfo)
|
||||||
|
|
||||||
|
@ -216,4 +216,4 @@ func set_terrarin_player():
|
|||||||
|
|
||||||
var terrarin : Spatial = get_node("/root/GameScene/VoxelWorld")
|
var terrarin : Spatial = get_node("/root/GameScene/VoxelWorld")
|
||||||
|
|
||||||
terrarin.set_player(local_player_master.player as Node2D)
|
terrarin.set_player(local_player_master.player.get_body() as Node2D)
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
[gd_scene load_steps=10 format=2]
|
[gd_scene load_steps=10 format=2]
|
||||||
|
|
||||||
[ext_resource path="res://player/CharacterSkeleton2D.gd" type="Script" id=1]
|
[ext_resource path="res://player/CharacterSkeleton2DGD.gd" type="Script" id=1]
|
||||||
[ext_resource path="res://characters/CharacterSideModel.tscn" type="PackedScene" id=2]
|
[ext_resource path="res://characters/CharacterSideModel.tscn" type="PackedScene" id=2]
|
||||||
[ext_resource path="res://characters/CharacterFrontModel.tscn" type="PackedScene" id=3]
|
[ext_resource path="res://characters/CharacterFrontModel.tscn" type="PackedScene" id=3]
|
||||||
[ext_resource path="res://scripts/item_visuals/CharacterAtlas2D.gd" type="Script" id=4]
|
[ext_resource path="res://scripts/item_visuals/CharacterAtlas2D.gd" type="Script" id=4]
|
||||||
@ -45,7 +45,7 @@ HUMANOID_BONES_MAX = 16,"
|
|||||||
texture = ExtResource( 6 )
|
texture = ExtResource( 6 )
|
||||||
slots = [ null, SubResource( 1 ), null, null, null, null, null, null, null, null, null, null, null, null, SubResource( 2 ), null ]
|
slots = [ null, SubResource( 1 ), null, null, null, null, null, null, null, null, null, null, null, null, SubResource( 2 ), null ]
|
||||||
|
|
||||||
[node name="Character" type="CharacterSkeleton"]
|
[node name="Character" type="CharacterSkeleton2D"]
|
||||||
script = ExtResource( 1 )
|
script = ExtResource( 1 )
|
||||||
front_node_path = NodePath("CharacterFrontModel")
|
front_node_path = NodePath("CharacterFrontModel")
|
||||||
front_animation_player_path = NodePath("../Character/CharacterFrontModel/AnimationPlayer")
|
front_animation_player_path = NodePath("../Character/CharacterFrontModel/AnimationPlayer")
|
||||||
|
@ -18,9 +18,8 @@ text_name = "Aspect of Scorpions"
|
|||||||
text_description = "Range: 26m.
|
text_description = "Range: 26m.
|
||||||
Casttime: {3}.
|
Casttime: {3}.
|
||||||
Deals 340 to 380 damage every 3 sec, and increases damage taken by 10% for 30 sec."
|
Deals 340 to 380 damage every 3 sec, and increases damage taken by 10% for 30 sec."
|
||||||
range = true
|
|
||||||
range_range = 26.0
|
range_range = 26.0
|
||||||
cast = true
|
cast_enabled = true
|
||||||
cast_cast_time = 1.2
|
cast_cast_time = 1.2
|
||||||
training_required_spell = ExtResource( 5 )
|
training_required_spell = ExtResource( 5 )
|
||||||
script = ExtResource( 1 )
|
script = ExtResource( 1 )
|
||||||
|
@ -16,7 +16,6 @@ text_name = "Aspect of Wasps"
|
|||||||
text_description = "Range: 26m.
|
text_description = "Range: 26m.
|
||||||
Instant.
|
Instant.
|
||||||
Deals 230 to 270 damage every 3 sec, this damage increases over the duration, for 21 sec."
|
Deals 230 to 270 damage every 3 sec, this damage increases over the duration, for 21 sec."
|
||||||
range = true
|
|
||||||
range_range = 26.0
|
range_range = 26.0
|
||||||
aoe_targetType = 541
|
aoe_targetType = 541
|
||||||
aoe_colliderType = 541
|
aoe_colliderType = 541
|
||||||
|
@ -16,7 +16,6 @@ target_aura_applys = [ ExtResource( 3 ) ]
|
|||||||
text_name = "Aspect of Wolves"
|
text_name = "Aspect of Wolves"
|
||||||
text_description = "Range: 26m.
|
text_description = "Range: 26m.
|
||||||
Deals 280 to 330 damage every 2 sec, and reduces melee and spell damage by 10% for 22 sec."
|
Deals 280 to 330 damage every 2 sec, and reduces melee and spell damage by 10% for 22 sec."
|
||||||
range = true
|
|
||||||
range_range = 26.0
|
range_range = 26.0
|
||||||
aoe_targetType = 1129071960
|
aoe_targetType = 1129071960
|
||||||
aoe_colliderType = 1058050193
|
aoe_colliderType = 1058050193
|
||||||
|
@ -19,7 +19,6 @@ Instant.
|
|||||||
Cooldown: {2}
|
Cooldown: {2}
|
||||||
Deals 460 to 540 damage every 3 sec, healing you for 80% of the damage."
|
Deals 460 to 540 damage every 3 sec, healing you for 80% of the damage."
|
||||||
cooldown_cooldown = 21.0
|
cooldown_cooldown = 21.0
|
||||||
range = true
|
|
||||||
range_range = 26.0
|
range_range = 26.0
|
||||||
aoe_targetType = -1910718371
|
aoe_targetType = -1910718371
|
||||||
aoe_colliderType = -298046312
|
aoe_colliderType = -298046312
|
||||||
|
@ -25,11 +25,8 @@ text_name = "Amplify Pain"
|
|||||||
text_description = "Range: 26m.
|
text_description = "Range: 26m.
|
||||||
Casttime: {3}.
|
Casttime: {3}.
|
||||||
Causes your damage over time effects to tick."
|
Causes your damage over time effects to tick."
|
||||||
range = true
|
|
||||||
range_range = 26.0
|
range_range = 26.0
|
||||||
cast = true
|
|
||||||
cast_cast_time = 1.5
|
cast_cast_time = 1.5
|
||||||
damage = true
|
|
||||||
damage_type = 16
|
damage_type = 16
|
||||||
damage_min = 130
|
damage_min = 130
|
||||||
damage_max = 150
|
damage_max = 150
|
||||||
|
@ -17,7 +17,6 @@ text_name = "Close Wounds"
|
|||||||
text_description = "Casttime: 2 sec.
|
text_description = "Casttime: 2 sec.
|
||||||
Cooldown: {2}
|
Cooldown: {2}
|
||||||
Heals you for 720 to 780 every 3 sec for 21 sec."
|
Heals you for 720 to 780 every 3 sec for 21 sec."
|
||||||
cast = true
|
|
||||||
cast_cast_time = 1.3
|
cast_cast_time = 1.3
|
||||||
aoe_colliderType = -2147479552
|
aoe_colliderType = -2147479552
|
||||||
script = ExtResource( 1 )
|
script = ExtResource( 1 )
|
||||||
|
@ -18,7 +18,6 @@ text_description = "Instant.
|
|||||||
Cooldown: {2}
|
Cooldown: {2}
|
||||||
Reduces damage taken by 70%. This spell is not on the global cooldown."
|
Reduces damage taken by 70%. This spell is not on the global cooldown."
|
||||||
cooldown_cooldown = 60.0
|
cooldown_cooldown = 60.0
|
||||||
cooldown_global_cooldown = false
|
|
||||||
aoe_targetType = -1910718371
|
aoe_targetType = -1910718371
|
||||||
aoe_colliderType = -298046312
|
aoe_colliderType = -298046312
|
||||||
script = ExtResource( 1 )
|
script = ExtResource( 1 )
|
||||||
|
@ -18,7 +18,6 @@ text_description = "Instant.
|
|||||||
Cooldown: {2}
|
Cooldown: {2}
|
||||||
Increases your movement speed by 60% for 6 sec. This spell is not on the global cooldown."
|
Increases your movement speed by 60% for 6 sec. This spell is not on the global cooldown."
|
||||||
cooldown_cooldown = 20.0
|
cooldown_cooldown = 20.0
|
||||||
cooldown_global_cooldown = false
|
|
||||||
aoe_targetType = 520
|
aoe_targetType = 520
|
||||||
aoe_colliderType = 186459648
|
aoe_colliderType = 186459648
|
||||||
script = ExtResource( 3 )
|
script = ExtResource( 3 )
|
||||||
|
@ -15,7 +15,6 @@ text_description = "Instant.
|
|||||||
Cooldown: {2}
|
Cooldown: {2}
|
||||||
Roots every enemy around you in a 15m radius for 8 sec. This spell doesn't have diminishing return."
|
Roots every enemy around you in a 15m radius for 8 sec. This spell doesn't have diminishing return."
|
||||||
cooldown_cooldown = 24.0
|
cooldown_cooldown = 24.0
|
||||||
range = true
|
|
||||||
range_range = 15.0
|
range_range = 15.0
|
||||||
aoe = true
|
aoe = true
|
||||||
aoe_targetType = -572653568
|
aoe_targetType = -572653568
|
||||||
|
@ -11,7 +11,6 @@ rank = 1
|
|||||||
icon = ExtResource( 2 )
|
icon = ExtResource( 2 )
|
||||||
needs_target = true
|
needs_target = true
|
||||||
text_name = "adadadadadad"
|
text_name = "adadadadadad"
|
||||||
damage = true
|
|
||||||
damage_min = 200
|
damage_min = 200
|
||||||
damage_max = 300
|
damage_max = 300
|
||||||
aoe_targetType = 1431112251
|
aoe_targetType = 1431112251
|
||||||
|
@ -16,8 +16,6 @@ text_description = "Range: 26m.
|
|||||||
Casttime: 1.5 sec.
|
Casttime: 1.5 sec.
|
||||||
Cooldown: {2}
|
Cooldown: {2}
|
||||||
Roots the target for 8 sec."
|
Roots the target for 8 sec."
|
||||||
range = true
|
|
||||||
cast = true
|
|
||||||
cast_cast_time = 1.4
|
cast_cast_time = 1.4
|
||||||
aoe_targetType = 8
|
aoe_targetType = 8
|
||||||
aoe_colliderType = 537722880
|
aoe_colliderType = 537722880
|
||||||
|
@ -17,7 +17,6 @@ text_description = "Instant.
|
|||||||
Cooldown: {2}
|
Cooldown: {2}
|
||||||
Heals you for 6700 to 7000."
|
Heals you for 6700 to 7000."
|
||||||
cooldown_cooldown = 150.0
|
cooldown_cooldown = 150.0
|
||||||
heal = true
|
|
||||||
heal_min = 6700
|
heal_min = 6700
|
||||||
heal_max = 7000
|
heal_max = 7000
|
||||||
aoe_targetType = 5
|
aoe_targetType = 5
|
||||||
|
@ -14,7 +14,6 @@ text_name = "Inner Will"
|
|||||||
text_description = "Cooldown: 1.5 min.
|
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."
|
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_cooldown = 90.0
|
||||||
cooldown_global_cooldown = false
|
|
||||||
aoe_targetType = 7
|
aoe_targetType = 7
|
||||||
aoe_colliderType = 480
|
aoe_colliderType = 480
|
||||||
script = ExtResource( 1 )
|
script = ExtResource( 1 )
|
||||||
|
@ -17,9 +17,8 @@ text_name = "Aspect of Scorpions"
|
|||||||
text_description = "Range: 26m.
|
text_description = "Range: 26m.
|
||||||
Casttime: {3}.
|
Casttime: {3}.
|
||||||
Deals 340 to 380 damage every 3 sec, and increases damage taken by 10% for 30 sec."
|
Deals 340 to 380 damage every 3 sec, and increases damage taken by 10% for 30 sec."
|
||||||
range = true
|
|
||||||
range_range = 26.0
|
range_range = 26.0
|
||||||
cast = true
|
cast_enabled = true
|
||||||
cast_cast_time = 1.2
|
cast_cast_time = 1.2
|
||||||
spell_cooldown_mainpulation_data_count = -1
|
spell_cooldown_mainpulation_data_count = -1
|
||||||
script = ExtResource( 2 )
|
script = ExtResource( 2 )
|
||||||
|
@ -15,7 +15,6 @@ text_name = "Aspect of Wasps"
|
|||||||
text_description = "Range: 26m.
|
text_description = "Range: 26m.
|
||||||
Instant.
|
Instant.
|
||||||
Deals 230 to 270 damage every 3 sec, this damage increases over the duration, for 21 sec."
|
Deals 230 to 270 damage every 3 sec, this damage increases over the duration, for 21 sec."
|
||||||
range = true
|
|
||||||
range_range = 26.0
|
range_range = 26.0
|
||||||
aoe_targetType = 541
|
aoe_targetType = 541
|
||||||
aoe_colliderType = 541
|
aoe_colliderType = 541
|
||||||
|
@ -15,7 +15,6 @@ target_aura_applys = [ ExtResource( 2 ) ]
|
|||||||
text_name = "Aspect of Wolves"
|
text_name = "Aspect of Wolves"
|
||||||
text_description = "Range: 26m.
|
text_description = "Range: 26m.
|
||||||
Deals 280 to 330 damage every 2 sec, and reduces melee and spell damage by 10% for 22 sec."
|
Deals 280 to 330 damage every 2 sec, and reduces melee and spell damage by 10% for 22 sec."
|
||||||
range = true
|
|
||||||
range_range = 26.0
|
range_range = 26.0
|
||||||
aoe_targetType = 1129071960
|
aoe_targetType = 1129071960
|
||||||
aoe_colliderType = 1058050193
|
aoe_colliderType = 1058050193
|
||||||
|
@ -19,7 +19,6 @@ Instant.
|
|||||||
Cooldown: {2}
|
Cooldown: {2}
|
||||||
Deals 460 to 540 damage every 3 sec, healing you for 80% of the damage."
|
Deals 460 to 540 damage every 3 sec, healing you for 80% of the damage."
|
||||||
cooldown_cooldown = 21.0
|
cooldown_cooldown = 21.0
|
||||||
range = true
|
|
||||||
range_range = 26.0
|
range_range = 26.0
|
||||||
aoe_targetType = -1910718371
|
aoe_targetType = -1910718371
|
||||||
aoe_colliderType = -298046312
|
aoe_colliderType = -298046312
|
||||||
|
@ -26,11 +26,8 @@ text_name = "Overload"
|
|||||||
text_description = "Range: 26m.
|
text_description = "Range: 26m.
|
||||||
Channeled. Free.
|
Channeled. Free.
|
||||||
Causes your dots to deal 10% more damage."
|
Causes your dots to deal 10% more damage."
|
||||||
range = true
|
|
||||||
range_range = 26.0
|
range_range = 26.0
|
||||||
cast = true
|
|
||||||
cast_cast_time = 1.5
|
cast_cast_time = 1.5
|
||||||
damage = true
|
|
||||||
damage_type = 16
|
damage_type = 16
|
||||||
damage_min = 130
|
damage_min = 130
|
||||||
damage_max = 150
|
damage_max = 150
|
||||||
|
@ -148,7 +148,7 @@
|
|||||||
{
|
{
|
||||||
"folder":"res://data/models/",
|
"folder":"res://data/models/",
|
||||||
"name":"Character Models",
|
"name":"Character Models",
|
||||||
"type":"CharacterSkeleton"
|
"type":"CharacterSkeleton2D"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"folder":"res://data/fonts/",
|
"folder":"res://data/fonts/",
|
||||||
|
@ -91,7 +91,7 @@ func spawn():
|
|||||||
# Entities.spawn_mob(1, 50, Vector3(76, 6, 54))
|
# Entities.spawn_mob(1, 50, Vector3(76, 6, 54))
|
||||||
|
|
||||||
func set_terrarin_player():
|
func set_terrarin_player():
|
||||||
terrarin.set_player(player as Node2D)
|
terrarin.set_player(player.get_body() as Node2D)
|
||||||
|
|
||||||
func _on_host_button_clicked():
|
func _on_host_button_clicked():
|
||||||
get_tree().connect("network_peer_connected", self, "_network_peer_connected")
|
get_tree().connect("network_peer_connected", self, "_network_peer_connected")
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
extends CharacterSkeleton
|
extends CharacterSkeleton2D
|
||||||
class_name CharacterSkeleton2D
|
class_name CharacterSkeleton2DGD
|
||||||
|
|
||||||
# Copyright Péter Magyar relintai@gmail.com
|
# Copyright Péter Magyar relintai@gmail.com
|
||||||
# MIT License, functionality from this class needs to be protable to the entity spell system
|
# MIT License, functionality from this class needs to be protable to the entity spell system
|
@ -175,9 +175,9 @@ func process_movement(delta : float) -> void:
|
|||||||
|
|
||||||
if get_tree().network_peer:
|
if get_tree().network_peer:
|
||||||
if get_tree().is_network_server():
|
if get_tree().is_network_server():
|
||||||
rset_position(position, rotation)
|
rset_position(get_body().position, get_body().rotation)
|
||||||
else:
|
else:
|
||||||
rpc("set_position", position, rotation)
|
rpc("set_position", get_body().position, get_body().rotation)
|
||||||
|
|
||||||
func _input(event: InputEvent) -> void:
|
func _input(event: InputEvent) -> void:
|
||||||
if not cursor_grabbed:
|
if not cursor_grabbed:
|
||||||
@ -272,7 +272,7 @@ func target(position : Vector2):
|
|||||||
var from = camera.project_ray_origin(position)
|
var from = camera.project_ray_origin(position)
|
||||||
var to = from + camera.project_ray_normal(position) * ray_length
|
var to = from + camera.project_ray_normal(position) * ray_length
|
||||||
|
|
||||||
var space_state = get_world_2d().direct_space_state
|
var space_state = get_body().get_world_2d().direct_space_state
|
||||||
var result = space_state.intersect_ray(from, to, [], 2)
|
var result = space_state.intersect_ray(from, to, [], 2)
|
||||||
|
|
||||||
if result:
|
if result:
|
||||||
@ -291,7 +291,7 @@ func cmouseover(event):
|
|||||||
var from = camera.project_ray_origin(event.position)
|
var from = camera.project_ray_origin(event.position)
|
||||||
var to = from + camera.project_ray_normal(event.position) * ray_length
|
var to = from + camera.project_ray_normal(event.position) * ray_length
|
||||||
|
|
||||||
var space_state = get_world_2d().direct_space_state
|
var space_state = get_body().get_world_2d().direct_space_state
|
||||||
var result = space_state.intersect_ray(from, to, [], 2)
|
var result = space_state.intersect_ray(from, to, [], 2)
|
||||||
|
|
||||||
if result:
|
if result:
|
||||||
|
@ -5,20 +5,21 @@
|
|||||||
[node name="DisplayPlayer" type="Entity" groups=[
|
[node name="DisplayPlayer" type="Entity" groups=[
|
||||||
"players",
|
"players",
|
||||||
]]
|
]]
|
||||||
collision_layer = 3
|
body_path = NodePath("KinematicBody2D")
|
||||||
collision_mask = 3
|
character_skeleton_path = NodePath("KinematicBody2D/Rotation_Helper/Model")
|
||||||
character_skeleton_path = NodePath("Rotation_Helper/Model/character")
|
|
||||||
sseed = 9240987
|
sseed = 9240987
|
||||||
cseed = 9240987
|
cseed = 9240987
|
||||||
script = ExtResource( 1 )
|
script = ExtResource( 1 )
|
||||||
|
|
||||||
[node name="Rotation_Helper" type="Spatial" parent="."]
|
[node name="KinematicBody2D" type="KinematicBody2D" parent="."]
|
||||||
|
|
||||||
|
[node name="Rotation_Helper" type="Spatial" parent="KinematicBody2D"]
|
||||||
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.960532, 0 )
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.960532, 0 )
|
||||||
__meta__ = {
|
__meta__ = {
|
||||||
"_editor_description_": ""
|
"_editor_description_": ""
|
||||||
}
|
}
|
||||||
|
|
||||||
[node name="Model" type="Spatial" parent="Rotation_Helper"]
|
[node name="Model" type="Spatial" parent="KinematicBody2D/Rotation_Helper"]
|
||||||
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.875205, 0 )
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.875205, 0 )
|
||||||
__meta__ = {
|
__meta__ = {
|
||||||
"_editor_description_": ""
|
"_editor_description_": ""
|
||||||
|
@ -78,17 +78,17 @@ func _process(delta : float) -> void:
|
|||||||
frame = 0
|
frame = 0
|
||||||
|
|
||||||
# print(get_tree().root.get_visible_rect())
|
# print(get_tree().root.get_visible_rect())
|
||||||
var vpos : Vector2 = -get_tree().root.canvas_transform.get_origin() - position
|
var vpos : Vector2 = -get_tree().root.canvas_transform.get_origin() - get_body().position
|
||||||
var l : float = vpos.length_squared()
|
var l : float = vpos.length_squared()
|
||||||
var rs : float = get_tree().root.size.x * get_tree().root.size.x
|
var rs : float = get_tree().root.size.x * get_tree().root.size.x
|
||||||
|
|
||||||
if l < rs:
|
if l < rs:
|
||||||
if not visible:
|
if not get_body().visible:
|
||||||
show()
|
get_body().show()
|
||||||
set_physics_process(true)
|
set_physics_process(true)
|
||||||
else:
|
else:
|
||||||
if visible:
|
if get_body().visible:
|
||||||
hide()
|
get_body().hide()
|
||||||
set_physics_process(false)
|
set_physics_process(false)
|
||||||
|
|
||||||
|
|
||||||
@ -105,16 +105,16 @@ func _physics_process(delta : float) -> void:
|
|||||||
process_movement(delta)
|
process_movement(delta)
|
||||||
|
|
||||||
func move_along_path(distance : float) -> void:
|
func move_along_path(distance : float) -> void:
|
||||||
var start_point : = position
|
var start_point : Vector2 = get_body().position
|
||||||
|
|
||||||
for i in range(path.size()):
|
for i in range(path.size()):
|
||||||
var distance_to_next : = start_point.distance_to(path[0])
|
var distance_to_next : = start_point.distance_to(path[0])
|
||||||
|
|
||||||
if distance <= distance_to_next and distance >= 0.0:
|
if distance <= distance_to_next and distance >= 0.0:
|
||||||
position = start_point.linear_interpolate(path[0], distance / distance_to_next)
|
get_body().position = start_point.linear_interpolate(path[0], distance / distance_to_next)
|
||||||
break
|
break
|
||||||
elif distance <= 0.0:
|
elif distance <= 0.0:
|
||||||
position = path[0]
|
get_body().position = path[0]
|
||||||
follow_path = false
|
follow_path = false
|
||||||
break
|
break
|
||||||
|
|
||||||
@ -181,9 +181,9 @@ func process_movement(delta : float) -> void:
|
|||||||
return
|
return
|
||||||
|
|
||||||
vel = hvel
|
vel = hvel
|
||||||
vel = move_and_slide(vel)
|
vel = get_body().move_and_slide(vel)
|
||||||
|
|
||||||
sset_position(position, rotation)
|
sset_position(get_body().position, get_body().rotation)
|
||||||
|
|
||||||
|
|
||||||
func sstart_attack(entity : Entity) -> void:
|
func sstart_attack(entity : Entity) -> void:
|
||||||
@ -244,10 +244,10 @@ func _son_damage_dealt(data):
|
|||||||
|
|
||||||
func _con_damage_dealt(info : SpellDamageInfo) -> void:
|
func _con_damage_dealt(info : SpellDamageInfo) -> void:
|
||||||
# if info.dealer ==
|
# if info.dealer ==
|
||||||
WorldNumbers.damage(position, 90, info.damage, info.crit)
|
WorldNumbers.damage(get_body().position, 90, info.damage, info.crit)
|
||||||
|
|
||||||
func _con_heal_dealt(info : SpellHealInfo) -> void:
|
func _con_heal_dealt(info : SpellHealInfo) -> void:
|
||||||
WorldNumbers.heal(position, 90, info.heal, info.crit)
|
WorldNumbers.heal(get_body().position, 90, info.heal, info.crit)
|
||||||
|
|
||||||
func _moved() -> void:
|
func _moved() -> void:
|
||||||
if sis_casting():
|
if sis_casting():
|
||||||
@ -328,6 +328,6 @@ func sset_position(pposition : Vector2, protation : float) -> void:
|
|||||||
vrpc("cset_position", pposition, protation)
|
vrpc("cset_position", pposition, protation)
|
||||||
|
|
||||||
remote func cset_position(pposition : Vector2, protation : float) -> void:
|
remote func cset_position(pposition : Vector2, protation : float) -> void:
|
||||||
position = pposition
|
get_body().position = pposition
|
||||||
rotation = protation
|
get_body().rotation = protation
|
||||||
|
|
||||||
|
@ -10,12 +10,15 @@ radius = 20.0
|
|||||||
[node name="Mob" type="Entity" groups=[
|
[node name="Mob" type="Entity" groups=[
|
||||||
"mobs",
|
"mobs",
|
||||||
]]
|
]]
|
||||||
character_skeleton_path = NodePath("Character")
|
body_path = NodePath("KinematicBody2D")
|
||||||
|
character_skeleton_path = NodePath("KinematicBody2D/Character")
|
||||||
script = ExtResource( 2 )
|
script = ExtResource( 2 )
|
||||||
|
|
||||||
[node name="NamePlate" parent="." instance=ExtResource( 3 )]
|
[node name="KinematicBody2D" type="KinematicBody2D" parent="."]
|
||||||
|
|
||||||
[node name="Character" parent="." instance=ExtResource( 1 )]
|
[node name="CollisionShape2D" type="CollisionShape2D" parent="KinematicBody2D"]
|
||||||
|
|
||||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
|
|
||||||
shape = SubResource( 1 )
|
shape = SubResource( 1 )
|
||||||
|
|
||||||
|
[node name="Character" parent="KinematicBody2D" instance=ExtResource( 1 )]
|
||||||
|
|
||||||
|
[node name="NamePlate" parent="KinematicBody2D" instance=ExtResource( 3 )]
|
||||||
|
@ -51,7 +51,7 @@ func _ready():
|
|||||||
health_bar = get_node(health_bar_path) as TextureProgress
|
health_bar = get_node(health_bar_path) as TextureProgress
|
||||||
health_bar_label = get_node(health_bar_label_path) as Label
|
health_bar_label = get_node(health_bar_label_path) as Label
|
||||||
|
|
||||||
entity = get_node("..") as Entity
|
entity = get_node("../..") as Entity
|
||||||
health = entity.get_health()
|
health = entity.get_health()
|
||||||
|
|
||||||
health.connect("c_changed", self, "c_health_changed")
|
health.connect("c_changed", self, "c_health_changed")
|
||||||
@ -84,7 +84,7 @@ func _process(delta):
|
|||||||
interpolating = false
|
interpolating = false
|
||||||
|
|
||||||
|
|
||||||
var position : Vector2 = entity.position
|
var position : Vector2 = entity.get_body().position
|
||||||
|
|
||||||
position = get_global_transform().xform_inv(position)
|
position = get_global_transform().xform_inv(position)
|
||||||
|
|
||||||
|
@ -110,8 +110,8 @@ remote func cset_position(pposition : Vector2, protation : float) -> void:
|
|||||||
# if get_network_master() != 1:
|
# if get_network_master() != 1:
|
||||||
# print(str(get_network_master()) + "npcset")
|
# print(str(get_network_master()) + "npcset")
|
||||||
|
|
||||||
position = pposition
|
get_body().position = pposition
|
||||||
rotation = protation
|
get_body().rotation = protation
|
||||||
|
|
||||||
func _moved() -> void:
|
func _moved() -> void:
|
||||||
if sis_casting():
|
if sis_casting():
|
||||||
|
@ -8,14 +8,15 @@
|
|||||||
radius = 20.0
|
radius = 20.0
|
||||||
|
|
||||||
[node name="NetworkedPlayer" type="Entity"]
|
[node name="NetworkedPlayer" type="Entity"]
|
||||||
collision_layer = 3
|
body_path = NodePath("KinematicBody2D")
|
||||||
collision_mask = 3
|
character_skeleton_path = NodePath("KinematicBody2D/Character")
|
||||||
character_skeleton_path = NodePath("Character")
|
|
||||||
script = ExtResource( 1 )
|
script = ExtResource( 1 )
|
||||||
|
|
||||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
|
[node name="NamePlate" parent="." instance=ExtResource( 3 )]
|
||||||
|
|
||||||
|
[node name="KinematicBody2D" type="KinematicBody2D" parent="."]
|
||||||
|
|
||||||
|
[node name="CollisionShape2D" type="CollisionShape2D" parent="KinematicBody2D"]
|
||||||
shape = SubResource( 1 )
|
shape = SubResource( 1 )
|
||||||
|
|
||||||
[node name="Character" parent="." instance=ExtResource( 2 )]
|
[node name="Character" parent="KinematicBody2D" instance=ExtResource( 2 )]
|
||||||
|
|
||||||
[node name="NamePlate" parent="." instance=ExtResource( 3 )]
|
|
||||||
|
@ -140,13 +140,13 @@ func process_movement(delta : float) -> void:
|
|||||||
|
|
||||||
hvel = hvel.linear_interpolate(target, accel*delta)
|
hvel = hvel.linear_interpolate(target, accel*delta)
|
||||||
vel = hvel
|
vel = hvel
|
||||||
vel = move_and_slide(vel)
|
vel = get_body().move_and_slide(vel)
|
||||||
|
|
||||||
if multiplayer.has_network_peer():
|
if multiplayer.has_network_peer():
|
||||||
if not multiplayer.is_network_server():
|
if not multiplayer.is_network_server():
|
||||||
rpc_id(1, "sset_position", position)
|
rpc_id(1, "sset_position", get_body().position)
|
||||||
else:
|
else:
|
||||||
sset_position(position)
|
sset_position(get_body().position)
|
||||||
|
|
||||||
func _input(event: InputEvent) -> void:
|
func _input(event: InputEvent) -> void:
|
||||||
if not cursor_grabbed:
|
if not cursor_grabbed:
|
||||||
@ -189,7 +189,7 @@ func _unhandled_input(event: InputEvent) -> void:
|
|||||||
mouse_left_down = event.pressed
|
mouse_left_down = event.pressed
|
||||||
|
|
||||||
if mouse_left_down:
|
if mouse_left_down:
|
||||||
mouse_dir = (event.position - get_viewport_rect().size / 2).normalized()
|
mouse_dir = (event.position - get_body().get_viewport_rect().size / 2).normalized()
|
||||||
else:
|
else:
|
||||||
mouse_dir = Vector2()
|
mouse_dir = Vector2()
|
||||||
|
|
||||||
@ -210,18 +210,18 @@ func _unhandled_input(event: InputEvent) -> void:
|
|||||||
target(event.position)
|
target(event.position)
|
||||||
|
|
||||||
if event is InputEventMouseMotion and mouse_left_down and event.device != -1:
|
if event is InputEventMouseMotion and mouse_left_down and event.device != -1:
|
||||||
mouse_dir = (event.position - get_viewport_rect().size / 2).normalized()
|
mouse_dir = (event.position - get_body().get_viewport_rect().size / 2).normalized()
|
||||||
|
|
||||||
|
|
||||||
func target(position : Vector2):
|
func target(position : Vector2):
|
||||||
var space_state = get_world_2d().direct_space_state
|
var space_state = get_body().get_world_2d().direct_space_state
|
||||||
var results = space_state.intersect_point(world.make_canvas_position_local(position), 32, [], get_collision_layer())
|
var results = space_state.intersect_point(world.make_canvas_position_local(position), 32, [], get_body().get_collision_layer())
|
||||||
#var results = space_state.intersect_point(position, 32, [], 2)
|
#var results = space_state.intersect_point(position, 32, [], 2)
|
||||||
|
|
||||||
if results:
|
if results:
|
||||||
for result in results:
|
for result in results:
|
||||||
if result.collider and result.collider is Entity:
|
if result.collider and result.collider.owner is Entity:
|
||||||
crequest_target_change((result.collider as Node).get_path())
|
crequest_target_change((result.collider.owner as Node).get_path())
|
||||||
return
|
return
|
||||||
|
|
||||||
crequest_target_change(NodePath())
|
crequest_target_change(NodePath())
|
||||||
@ -230,14 +230,14 @@ func target(position : Vector2):
|
|||||||
|
|
||||||
|
|
||||||
func cmouseover(event):
|
func cmouseover(event):
|
||||||
var space_state = get_world_2d().direct_space_state
|
var space_state = get_body().get_world_2d().direct_space_state
|
||||||
var results = space_state.intersect_point(world.make_canvas_position_local(position), 32, [], get_collision_layer())
|
var results = space_state.intersect_point(world.make_canvas_position_local(get_body().position), 32, [], get_body().get_collision_layer())
|
||||||
#var results = space_state.intersect_point(position, 32, [], 2)
|
#var results = space_state.intersect_point(position, 32, [], 2)
|
||||||
|
|
||||||
if results:
|
if results:
|
||||||
for result in results:
|
for result in results:
|
||||||
if result.collider and result.collider is Entity:
|
if result.collider and result.collider.owner is Entity:
|
||||||
var mo : Entity = result.collider as Entity
|
var mo : Entity = result.collider.owner as Entity
|
||||||
|
|
||||||
if last_mouse_over != null and last_mouse_over != mo:
|
if last_mouse_over != null and last_mouse_over != mo:
|
||||||
if is_instance_valid(last_mouse_over):
|
if is_instance_valid(last_mouse_over):
|
||||||
@ -276,7 +276,7 @@ remote func cset_position(pposition : Vector2) -> void:
|
|||||||
if get_network_master() != 1:
|
if get_network_master() != 1:
|
||||||
print(str(get_network_master()) + " pcset")
|
print(str(get_network_master()) + " pcset")
|
||||||
|
|
||||||
position = pposition
|
get_body().position = pposition
|
||||||
|
|
||||||
func _moved() -> void:
|
func _moved() -> void:
|
||||||
if sis_casting():
|
if sis_casting():
|
||||||
|
@ -10,16 +10,19 @@ radius = 8.0
|
|||||||
[node name="Player" type="Entity" groups=[
|
[node name="Player" type="Entity" groups=[
|
||||||
"players",
|
"players",
|
||||||
]]
|
]]
|
||||||
character_skeleton_path = NodePath("Character")
|
body_path = NodePath("KinematicBody2D")
|
||||||
|
character_skeleton_path = NodePath("KinematicBody2D/Character")
|
||||||
script = ExtResource( 2 )
|
script = ExtResource( 2 )
|
||||||
|
|
||||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
|
|
||||||
shape = SubResource( 1 )
|
|
||||||
|
|
||||||
[node name="Camera" type="Camera2D" parent="."]
|
|
||||||
current = true
|
|
||||||
|
|
||||||
[node name="GUILayer" parent="." instance=ExtResource( 3 )]
|
[node name="GUILayer" parent="." instance=ExtResource( 3 )]
|
||||||
|
|
||||||
[node name="Character" parent="." instance=ExtResource( 1 )]
|
[node name="KinematicBody2D" type="KinematicBody2D" parent="."]
|
||||||
|
|
||||||
|
[node name="Character" parent="KinematicBody2D" instance=ExtResource( 1 )]
|
||||||
|
|
||||||
|
[node name="CollisionShape2D" type="CollisionShape2D" parent="KinematicBody2D"]
|
||||||
|
shape = SubResource( 1 )
|
||||||
|
|
||||||
|
[node name="Camera" type="Camera2D" parent="KinematicBody2D"]
|
||||||
|
current = true
|
||||||
[connection signal="onc_open_loot_winow_request" from="." to="GUILayer" method="_on_Player_onc_open_loot_winow_request"]
|
[connection signal="onc_open_loot_winow_request" from="." to="GUILayer" method="_on_Player_onc_open_loot_winow_request"]
|
||||||
|
@ -49,10 +49,10 @@ func _physics_process(delta):
|
|||||||
update_visibility()
|
update_visibility()
|
||||||
|
|
||||||
func update_visibility() -> void:
|
func update_visibility() -> void:
|
||||||
_query.collision_layer = get_collision_layer()
|
_query.collision_layer = get_body().get_collision_layer()
|
||||||
|
|
||||||
_query.transform = Transform2D(0, position)
|
_query.transform = Transform2D(0, get_body().position)
|
||||||
var res : Array = get_world_2d().direct_space_state.intersect_shape(_query)
|
var res : Array = get_body().get_world_2d().direct_space_state.intersect_shape(_query)
|
||||||
|
|
||||||
#warning-ignore:unassigned_variable
|
#warning-ignore:unassigned_variable
|
||||||
var currenty_sees : Array = Array()
|
var currenty_sees : Array = Array()
|
||||||
@ -104,6 +104,6 @@ func update_visibility() -> void:
|
|||||||
remote func set_position_remote(pos : Vector2) -> void:
|
remote func set_position_remote(pos : Vector2) -> void:
|
||||||
if get_tree().is_network_server():
|
if get_tree().is_network_server():
|
||||||
rpc("set_position_remote", pos)
|
rpc("set_position_remote", pos)
|
||||||
print(position)
|
#print(position)
|
||||||
position = pos
|
get_body().position = pos
|
||||||
|
|
||||||
|
@ -29,10 +29,10 @@ _global_script_classes=[ {
|
|||||||
"language": "GDScript",
|
"language": "GDScript",
|
||||||
"path": "res://player/CharacterSkeletonAttachPoint.gd"
|
"path": "res://player/CharacterSkeletonAttachPoint.gd"
|
||||||
}, {
|
}, {
|
||||||
"base": "CharacterSkeleton",
|
"base": "CharacterSkeleton2D",
|
||||||
"class": "CharacterSkeleton2D",
|
"class": "CharacterSkeleton2DGD",
|
||||||
"language": "GDScript",
|
"language": "GDScript",
|
||||||
"path": "res://player/CharacterSkeleton2D.gd"
|
"path": "res://player/CharacterSkeleton2DGD.gd"
|
||||||
}, {
|
}, {
|
||||||
"base": "Entity",
|
"base": "Entity",
|
||||||
"class": "DisplayPlayerGD",
|
"class": "DisplayPlayerGD",
|
||||||
@ -129,7 +129,7 @@ _global_script_class_icons={
|
|||||||
"CharacterAtlas2D": "",
|
"CharacterAtlas2D": "",
|
||||||
"CharacterAtlasEntry2D": "",
|
"CharacterAtlasEntry2D": "",
|
||||||
"CharacterSkeketonAttachPoint": "",
|
"CharacterSkeketonAttachPoint": "",
|
||||||
"CharacterSkeleton2D": "",
|
"CharacterSkeleton2DGD": "",
|
||||||
"DisplayPlayerGD": "",
|
"DisplayPlayerGD": "",
|
||||||
"EntityAIGD": "",
|
"EntityAIGD": "",
|
||||||
"EntityDataGD": "",
|
"EntityDataGD": "",
|
||||||
|
@ -117,7 +117,7 @@ func attack(delta):
|
|||||||
owner.target_movement_direction = Vector2()
|
owner.target_movement_direction = Vector2()
|
||||||
return
|
return
|
||||||
|
|
||||||
var dir : Vector2 = target.position - owner.position
|
var dir : Vector2 = target.get_body().position - owner.get_body().position
|
||||||
|
|
||||||
owner.target_movement_direction = dir
|
owner.target_movement_direction = dir
|
||||||
|
|
||||||
|
@ -27,13 +27,13 @@ export(Rect2) var right_rect : Rect2
|
|||||||
export(Rect2) var left_rect : Rect2
|
export(Rect2) var left_rect : Rect2
|
||||||
|
|
||||||
func get_index(facing : int) -> Rect2:
|
func get_index(facing : int) -> Rect2:
|
||||||
if facing == CharacterSkeleton2D.CharacterFacing.FACING_FRONT:
|
if facing == CharacterSkeleton2DGD.CharacterFacing.FACING_FRONT:
|
||||||
return front_rect
|
return front_rect
|
||||||
if facing == CharacterSkeleton2D.CharacterFacing.FACING_BACK:
|
if facing == CharacterSkeleton2DGD.CharacterFacing.FACING_BACK:
|
||||||
return back_rect
|
return back_rect
|
||||||
if facing == CharacterSkeleton2D.CharacterFacing.FACING_RIGHT:
|
if facing == CharacterSkeleton2DGD.CharacterFacing.FACING_RIGHT:
|
||||||
return right_rect
|
return right_rect
|
||||||
if facing == CharacterSkeleton2D.CharacterFacing.FACING_LEFT:
|
if facing == CharacterSkeleton2DGD.CharacterFacing.FACING_LEFT:
|
||||||
return left_rect
|
return left_rect
|
||||||
|
|
||||||
return front_rect
|
return front_rect
|
||||||
|
@ -25,13 +25,13 @@ func _sstart_casting(info : SpellCastInfo) -> void:
|
|||||||
if info.caster.sis_casting():
|
if info.caster.sis_casting():
|
||||||
return
|
return
|
||||||
|
|
||||||
if info.spell.cooldown_global_cooldown and info.caster.gets_has_global_cooldown() or info.caster.hass_category_cooldown(spell_type) or info.caster.hass_cooldown(id):
|
if cooldown_global_cooldown_enabled and info.caster.gets_has_global_cooldown() or info.caster.hass_category_cooldown(spell_type) or info.caster.hass_cooldown(id):
|
||||||
return
|
return
|
||||||
|
|
||||||
if !info.caster.hass_spell(self):
|
if !info.caster.hass_spell(self):
|
||||||
return
|
return
|
||||||
|
|
||||||
if cast:
|
if cast_enabled:
|
||||||
info.caster.sstart_casting(info)
|
info.caster.sstart_casting(info)
|
||||||
return
|
return
|
||||||
|
|
||||||
@ -102,7 +102,7 @@ func handle_effect(info : SpellCastInfo) -> void:
|
|||||||
elif target_type == SPELL_TARGET_TYPE_SELF:
|
elif target_type == SPELL_TARGET_TYPE_SELF:
|
||||||
info.target = info.caster
|
info.target = info.caster
|
||||||
|
|
||||||
if damage and info.target:
|
if damage_enabled and info.target:
|
||||||
var sdi : SpellDamageInfo = SpellDamageInfo.new()
|
var sdi : SpellDamageInfo = SpellDamageInfo.new()
|
||||||
|
|
||||||
sdi.damage_source = self
|
sdi.damage_source = self
|
||||||
@ -149,7 +149,7 @@ func handle_cooldown(info : SpellCastInfo) -> void:
|
|||||||
info.caster.adds_cooldown(id, cooldown_cooldown)
|
info.caster.adds_cooldown(id, cooldown_cooldown)
|
||||||
|
|
||||||
func handle_gcd(info : SpellCastInfo) -> void:
|
func handle_gcd(info : SpellCastInfo) -> void:
|
||||||
if cooldown_global_cooldown and cast_cast_time < 0.01:
|
if cooldown_global_cooldown_enabled and cast_cast_time < 0.01:
|
||||||
info.caster.sstart_global_cooldown(info.caster.get_gcd().scurrent)
|
info.caster.sstart_global_cooldown(info.caster.get_gcd().scurrent)
|
||||||
|
|
||||||
func add_spell_cast_effect(info : SpellCastInfo) -> void:
|
func add_spell_cast_effect(info : SpellCastInfo) -> void:
|
||||||
|
@ -161,7 +161,7 @@ func setup_icon() -> void:
|
|||||||
ThemeAtlas.unref_texture(icon_rect.texture)
|
ThemeAtlas.unref_texture(icon_rect.texture)
|
||||||
icon_rect.texture = null
|
icon_rect.texture = null
|
||||||
|
|
||||||
var spell = Entities.get_spell(button_entry.item_id)
|
var spell : Spell = Entities.get_spell(button_entry.item_id) as Spell
|
||||||
|
|
||||||
if spell.icon != null:
|
if spell.icon != null:
|
||||||
icon_rect.texture = ThemeAtlas.add_texture(spell.icon)
|
icon_rect.texture = ThemeAtlas.add_texture(spell.icon)
|
||||||
@ -169,7 +169,7 @@ func setup_icon() -> void:
|
|||||||
|
|
||||||
spell_id = spell.id
|
spell_id = spell.id
|
||||||
spell_type = spell.spell_type
|
spell_type = spell.spell_type
|
||||||
has_gcd = spell.cooldown_global_cooldown
|
has_gcd = spell.cooldown_global_cooldown_enabled
|
||||||
|
|
||||||
func _on_button_pressed() -> void:
|
func _on_button_pressed() -> void:
|
||||||
if (button_entry.type == ActionBarButtonEntry.ACTION_BAR_BUTTON_ENTRY_TYPE_SPELL):
|
if (button_entry.type == ActionBarButtonEntry.ACTION_BAR_BUTTON_ENTRY_TYPE_SPELL):
|
||||||
|
Loading…
Reference in New Issue
Block a user