Update the engine, and ESS to get the backend support for EntityResource mods. Reimplemented speed changing aura, and consequently fixed Nature's Swiftness.

This commit is contained in:
Relintai 2020-07-29 14:38:53 +02:00
parent 488da2ff50
commit 485d2c3124
4 changed files with 76 additions and 38 deletions

2
HEADS
View File

@ -1 +1 @@
{"engine": {"3.2": "fe4aa393f093cd4e37409e2d1b0b68e8e05abd35", "master": "8c73e813134001e575b6f59e3b0100471c007410"}, "world_generator": {"master": "bc2ee7171a29d02a4687eaddd91374e127cf2b88"}, "entity_spell_system": {"master": "7b6097d95c5cc13bc9b511a9470c5858759aa2dd"}, "ui_extensions": {"master": "6db99122c27e87840f2da2cfa8934b0d0510004e"}, "voxelman": {"master": "768728139ede479dad006913e2f86d3f85edae57"}, "texture_packer": {"master": "f98b7410cd3f2a743cb57456910ad9f93ef89937"}, "fastnoise": {"master": "d0e3f1c759332cf0d9a5d7e0e71d0b0278310651"}, "mesh_data_resource": {"master": "a9bab9896de71966b9c9056869871e618c64cba7"}, "procedural_animations": {"master": "8426e2c976e9f9cb82bca636c0ec6e79ad7b3bcb"}, "ess_data": {"master": "3bd637fdd3304b64a18287a49a6b7387acf2f5de"}, "props": {"master": "0ed644e4a4e7867a49fbe7c727b500305f7077f8"}, "mesh_utils": {"master": "65a802ff39a601bd1a55675023871e09500943ef"}, "broken_seals_module": {"master": "8c4b32d3932ccb043b8f6c92c1277547750fe391"}, "thread_pool": {"master": "164ad82feb05842cb944c2907b65e521f8c7c465"}}
{"engine": {"3.2": "36b746d90393299b81ecb991f4aa94a8d742fd11", "master": "8c73e813134001e575b6f59e3b0100471c007410"}, "world_generator": {"master": "bc2ee7171a29d02a4687eaddd91374e127cf2b88"}, "entity_spell_system": {"master": "e45d109d7f366a22a8e39c90ab9898741ca38182"}, "ui_extensions": {"master": "6db99122c27e87840f2da2cfa8934b0d0510004e"}, "voxelman": {"master": "768728139ede479dad006913e2f86d3f85edae57"}, "texture_packer": {"master": "f98b7410cd3f2a743cb57456910ad9f93ef89937"}, "fastnoise": {"master": "d0e3f1c759332cf0d9a5d7e0e71d0b0278310651"}, "mesh_data_resource": {"master": "a9bab9896de71966b9c9056869871e618c64cba7"}, "procedural_animations": {"master": "8426e2c976e9f9cb82bca636c0ec6e79ad7b3bcb"}, "ess_data": {"master": "3bd637fdd3304b64a18287a49a6b7387acf2f5de"}, "props": {"master": "0ed644e4a4e7867a49fbe7c727b500305f7077f8"}, "mesh_utils": {"master": "65a802ff39a601bd1a55675023871e09500943ef"}, "broken_seals_module": {"master": "8c4b32d3932ccb043b8f6c92c1277547750fe391"}, "thread_pool": {"master": "164ad82feb05842cb944c2907b65e521f8c7c465"}}

View File

@ -1,6 +1,6 @@
[gd_resource type="Aura" load_steps=4 format=2]
[ext_resource path="res://scripts/auras/aura_script.gd" type="Script" id=1]
[ext_resource path="res://scripts/auras/SpeedModAura.gd" type="Script" id=1]
[ext_resource path="res://modules/entity_classes/naturalist/effect_data/natures_swiftness.tres" type="SpellEffectVisual" id=2]
[ext_resource path="res://modules/entity_classes/naturalist/icons/natures_swiftness.tres" type="Texture" id=3]
@ -14,3 +14,5 @@ text_name = "Nature's Swiftness"
text_description = "Increases your movement speed by 60% for 6 sec. This spell is not on the global cooldown."
visual_spell_effects = ExtResource( 2 )
script = ExtResource( 1 )
does_stack = true
mod_speed = 40.0

View File

@ -0,0 +1,26 @@
extends "aura_script.gd"
export(bool) var does_stack : bool = true
export(float) var mod_speed : float = 0
func apply_mods(ad : AuraData):
#slows never stack
if mod_speed < 0:
ad.owner.gets_speed().add_non_stacking_mod(mod_speed)
return
if does_stack:
ad.owner.gets_speed().add_stacking_mod(mod_speed)
else:
ad.owner.gets_speed().add_non_stacking_mod(mod_speed)
func deapply_mods(ad : AuraData):
#slows never stack
if mod_speed < 0:
ad.owner.gets_speed().remove_non_stacking_mod(mod_speed)
return
if does_stack:
ad.owner.gets_speed().remove_stacking_mod(mod_speed)
else:
ad.owner.gets_speed().remove_non_stacking_mod(mod_speed)

View File

@ -21,43 +21,53 @@ class_name AuraGD
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
# SOFTWARE.
#func _sapply(info : AuraApplyInfo) -> void:
## var add : bool = false
# var ad : AuraData = info.target.aura_gets_by(info.caster, info.aura.id)
#
# if ad == null:
## add = true
# ad = AuraData.new()
#
# setup_aura_data(ad, info);
#
# for i in range(stat_attribute_get_count()):
# info.target.stat_mod(id, stat_attribute_get_base_mod(i), stat_attribute_get_bonus_mod(i), stat_attribute_get_percent_mod(i))
#
# if states_add != 0:
# for i in range(EntityEnums.ENTITY_STATE_TYPE_INDEX_MAX):
# var t : int = 1 << i
#
# if states_add & t != 0:
# info.target.adds_state_ref(i)
#
#
# info.target.aura_adds(ad);
# else:
# ad.remaining_time = time
#
#
#func _sdeapply(data : AuraData) -> void:
# for i in range(stat_attribute_get_count()):
# data.owner.stat_mod(id, stat_attribute_get_base_mod(i), stat_attribute_get_bonus_mod(i), stat_attribute_get_percent_mod(i))
#
# if states_add != 0:
# for i in range(EntityEnums.ENTITY_STATE_TYPE_INDEX_MAX):
# var t : int = 1 << i
#
# if states_add & t != 0:
# data.owner.removes_state_ref(i)
func _sapply(info : AuraApplyInfo) -> void:
# var add : bool = false
var ad : AuraData = info.target.aura_gets_by(info.caster, info.aura.id)
if ad == null:
# add = true
ad = AuraData.new()
setup_aura_data(ad, info);
for i in range(stat_attribute_get_count()):
info.target.stat_mod(stat_attribute_get_stat(id), stat_attribute_get_base_mod(i), stat_attribute_get_bonus_mod(i), stat_attribute_get_percent_mod(i))
if states_add != 0:
for i in range(EntityEnums.ENTITY_STATE_TYPE_INDEX_MAX):
var t : int = 1 << i
if states_add & t != 0:
info.target.adds_state_ref(i)
info.target.aura_adds(ad);
apply_mods(ad)
else:
ad.remaining_time = time
func _sdeapply(data : AuraData) -> void:
for i in range(stat_attribute_get_count()):
data.owner.stat_mod(stat_attribute_get_stat(id), -stat_attribute_get_base_mod(i), -stat_attribute_get_bonus_mod(i), -stat_attribute_get_percent_mod(i))
if states_add != 0:
for i in range(EntityEnums.ENTITY_STATE_TYPE_INDEX_MAX):
var t : int = 1 << i
if states_add & t != 0:
data.owner.removes_state_ref(i)
deapply_mods(data)
func apply_mods(ad : AuraData):
pass
func deapply_mods(ad : AuraData):
pass
func _con_aura_added(data : AuraData) -> void:
if data.owner.get_character_skeleton() == null or data.owner.get_character_skeleton().root_attach_point == null:
return