Add plastique item
Add Door object Initial work for look up animation
This commit is contained in:
@@ -71,6 +71,8 @@ public partial class Player : CharacterBody3D, IPlayer, IProvide<IPlayer>
|
||||
private bool HealthTimerIsActive = false;
|
||||
#endregion
|
||||
|
||||
public event Action PointUpFinished;
|
||||
|
||||
#region Node Dependencies
|
||||
[Node] private IAnimationPlayer AnimationPlayer { get; set; } = default!;
|
||||
|
||||
@@ -91,6 +93,8 @@ public partial class Player : CharacterBody3D, IPlayer, IProvide<IPlayer>
|
||||
[Node] private CollisionShape3D MainCollision { get; set; } = default!;
|
||||
|
||||
[Node] private ShakeCamera _camera3D { get; set; } = default!;
|
||||
|
||||
[Node] private AnimationPlayer CameraAnimations { get; set; } = default!;
|
||||
#endregion
|
||||
|
||||
|
||||
@@ -107,187 +111,201 @@ public partial class Player : CharacterBody3D, IPlayer, IProvide<IPlayer>
|
||||
|
||||
public void Initialize()
|
||||
{
|
||||
var container = new SimpleInjector.Container();
|
||||
container.Register<IPlayerLogic, PlayerLogic>(Lifestyle.Singleton);
|
||||
var container = new SimpleInjector.Container();
|
||||
container.Register<IPlayerLogic, PlayerLogic>(Lifestyle.Singleton);
|
||||
|
||||
PlayerLogic = container.GetInstance<IPlayerLogic>();
|
||||
PlayerLogic.Set(this as IPlayer);
|
||||
PlayerLogic.Set(Settings);
|
||||
PlayerLogic = container.GetInstance<IPlayerLogic>();
|
||||
PlayerLogic.Set(this as IPlayer);
|
||||
PlayerLogic.Set(Settings);
|
||||
|
||||
Inventory = new Inventory();
|
||||
HealthComponent = new HealthComponent(InitialHP);
|
||||
VTComponent = new VTComponent(InitialVT);
|
||||
AttackComponent = new AttackComponent(InitialAttack);
|
||||
DefenseComponent = new DefenseComponent(InitialDefense);
|
||||
ExperiencePointsComponent = new ExperiencePointsComponent();
|
||||
LuckComponent = new LuckComponent(InitialLuck);
|
||||
EquipmentComponent = new EquipmentComponent();
|
||||
Inventory = new Inventory();
|
||||
HealthComponent = new HealthComponent(InitialHP);
|
||||
VTComponent = new VTComponent(InitialVT);
|
||||
AttackComponent = new AttackComponent(InitialAttack);
|
||||
DefenseComponent = new DefenseComponent(InitialDefense);
|
||||
ExperiencePointsComponent = new ExperiencePointsComponent();
|
||||
LuckComponent = new LuckComponent(InitialLuck);
|
||||
EquipmentComponent = new EquipmentComponent();
|
||||
|
||||
_itemReroller = new ItemReroller(ItemDatabase.Instance);
|
||||
_itemReroller = new ItemReroller(ItemDatabase.Instance);
|
||||
|
||||
Settings = new PlayerLogic.Settings() { RotationSpeed = RotationSpeed, MoveSpeed = MoveSpeed, Acceleration = Acceleration };
|
||||
CameraAnimations.AnimationFinished += CameraAnimations_AnimationFinished;
|
||||
|
||||
PlayerBinding = PlayerLogic.Bind();
|
||||
Settings = new PlayerLogic.Settings() { RotationSpeed = RotationSpeed, MoveSpeed = MoveSpeed, Acceleration = Acceleration };
|
||||
|
||||
PlayerBinding
|
||||
.Handle((in PlayerLogic.Output.ThrowItem output) =>
|
||||
{
|
||||
})
|
||||
.Handle((in PlayerLogic.Output.Move output) =>
|
||||
{
|
||||
Move(output.delta);
|
||||
});
|
||||
PlayerBinding = PlayerLogic.Bind();
|
||||
|
||||
PlayerLogic.Start();
|
||||
this.Provide();
|
||||
PlayerBinding
|
||||
.Handle((in PlayerLogic.Output.ThrowItem output) =>
|
||||
{
|
||||
})
|
||||
.Handle((in PlayerLogic.Output.Move output) =>
|
||||
{
|
||||
Move(output.delta);
|
||||
});
|
||||
|
||||
PlayerLogic.Start();
|
||||
this.Provide();
|
||||
}
|
||||
|
||||
public void ResetPlayerData()
|
||||
{
|
||||
foreach (var item in Inventory.Items)
|
||||
Inventory.Remove(item);
|
||||
foreach (var item in Inventory.Items)
|
||||
Inventory.Remove(item);
|
||||
|
||||
HealthComponent.Reset();
|
||||
VTComponent.Reset();
|
||||
AttackComponent.Reset();
|
||||
DefenseComponent.Reset();
|
||||
ExperiencePointsComponent.Reset();
|
||||
LuckComponent.Reset();
|
||||
EquipmentComponent.Reset();
|
||||
HealthComponent.Reset();
|
||||
VTComponent.Reset();
|
||||
AttackComponent.Reset();
|
||||
DefenseComponent.Reset();
|
||||
ExperiencePointsComponent.Reset();
|
||||
LuckComponent.Reset();
|
||||
EquipmentComponent.Reset();
|
||||
|
||||
HealthTimer.Timeout += OnHealthTimerTimeout;
|
||||
HealthTimer.Timeout += OnHealthTimerTimeout;
|
||||
}
|
||||
|
||||
#region Initialization
|
||||
public void OnReady()
|
||||
{
|
||||
Hitbox.AreaEntered += Hitbox_AreaEntered;
|
||||
CollisionDetector.AreaEntered += CollisionDetector_AreaEntered;
|
||||
HealthComponent.HealthReachedZero += Die;
|
||||
HealthTimer.WaitTime = _healthTimerWaitTime;
|
||||
SetProcessInput(false);
|
||||
SetPhysicsProcess(false);
|
||||
Hitbox.AreaEntered += Hitbox_AreaEntered;
|
||||
CollisionDetector.AreaEntered += CollisionDetector_AreaEntered;
|
||||
HealthComponent.HealthReachedZero += Die;
|
||||
HealthTimer.WaitTime = _healthTimerWaitTime;
|
||||
SetProcessInput(false);
|
||||
SetPhysicsProcess(false);
|
||||
}
|
||||
#endregion
|
||||
|
||||
public void Activate()
|
||||
{
|
||||
SetProcessInput(true);
|
||||
SetPhysicsProcess(true);
|
||||
SetHealthTimerStatus(HealthTimerIsActive);
|
||||
SetProcessInput(true);
|
||||
SetPhysicsProcess(true);
|
||||
SetHealthTimerStatus(HealthTimerIsActive);
|
||||
}
|
||||
|
||||
public void Deactivate()
|
||||
{
|
||||
Velocity = Vector3.Zero;
|
||||
SetProcessInput(false);
|
||||
SetPhysicsProcess(false);
|
||||
SetHealthTimerStatus(false);
|
||||
Velocity = Vector3.Zero;
|
||||
SetProcessInput(false);
|
||||
SetPhysicsProcess(false);
|
||||
SetHealthTimerStatus(false);
|
||||
}
|
||||
|
||||
public void LookUp() => CameraAnimations.Play("look_up");
|
||||
|
||||
private void SetHealthTimerStatus(bool isActive)
|
||||
{
|
||||
if (isActive)
|
||||
HealthTimer.Start();
|
||||
else
|
||||
HealthTimer.Stop();
|
||||
if (isActive)
|
||||
HealthTimer.Start();
|
||||
else
|
||||
HealthTimer.Stop();
|
||||
}
|
||||
|
||||
public void TeleportPlayer(Transform3D newTransform)
|
||||
{
|
||||
Transform = newTransform;
|
||||
Transform = newTransform;
|
||||
}
|
||||
|
||||
public void TakeDamage(AttackData damage)
|
||||
{
|
||||
_camera3D.AddShake(1.0f);
|
||||
TakeDamageAnimationPlayer.Play("take_damage");
|
||||
var damageReceived = DamageCalculator.CalculateDamage(damage, DefenseComponent.CurrentDefense.Value + EquipmentComponent.BonusDefense, EquipmentComponent.ElementalResistance);
|
||||
HealthComponent.Damage(damageReceived);
|
||||
SfxDatabase.Instance.Play(SoundEffect.TakeDamage);
|
||||
_camera3D.AddShake(1.0f);
|
||||
TakeDamageAnimationPlayer.Play("take_damage");
|
||||
var damageReceived = DamageCalculator.CalculateDamage(damage, DefenseComponent.CurrentDefense.Value + EquipmentComponent.BonusDefense, EquipmentComponent.ElementalResistance);
|
||||
HealthComponent.Damage(damageReceived);
|
||||
SfxDatabase.Instance.Play(SoundEffect.TakeDamage);
|
||||
}
|
||||
|
||||
public void Knockback(float impulse)
|
||||
{
|
||||
_knockbackStrength = impulse;
|
||||
_knockbackDirection = GlobalBasis.Z.Normalized();
|
||||
_knockbackStrength = impulse;
|
||||
_knockbackDirection = GlobalBasis.Z.Normalized();
|
||||
}
|
||||
|
||||
public void LevelUp()
|
||||
{
|
||||
var rng = new RandomNumberGenerator();
|
||||
rng.Randomize();
|
||||
var hpIncrease = rng.RandiRange(3, 6);
|
||||
HealthComponent.RaiseMaximumHP(hpIncrease);
|
||||
ExperiencePointsComponent.LevelUp();
|
||||
var rng = new RandomNumberGenerator();
|
||||
rng.Randomize();
|
||||
var hpIncrease = rng.RandiRange(3, 6);
|
||||
HealthComponent.RaiseMaximumHP(hpIncrease);
|
||||
ExperiencePointsComponent.LevelUp();
|
||||
}
|
||||
|
||||
public void Die()
|
||||
{
|
||||
PlayerFXAnimations.Play("death");
|
||||
HealthTimer.WaitTime = _healthTimerWaitTime;
|
||||
HealthTimer.Timeout -= OnHealthTimerTimeout;
|
||||
SetProcessInput(false);
|
||||
SetPhysicsProcess(false);
|
||||
PlayerDied?.Invoke();
|
||||
PlayerFXAnimations.Play("death");
|
||||
HealthTimer.WaitTime = _healthTimerWaitTime;
|
||||
HealthTimer.Timeout -= OnHealthTimerTimeout;
|
||||
SetProcessInput(false);
|
||||
SetPhysicsProcess(false);
|
||||
PlayerDied?.Invoke();
|
||||
}
|
||||
|
||||
public void Reset()
|
||||
{
|
||||
CameraAnimations.Play("RESET");
|
||||
}
|
||||
|
||||
public override void _Input(InputEvent @event)
|
||||
{
|
||||
if (@event.IsActionPressed(GameInputs.Attack))
|
||||
Attack();
|
||||
if (@event.IsActionPressed(GameInputs.Sprint))
|
||||
Settings.MoveSpeed *= 2;
|
||||
if (@event.IsActionReleased(GameInputs.Sprint))
|
||||
Settings.MoveSpeed /= 2;
|
||||
if (@event.IsActionPressed(GameInputs.Attack))
|
||||
Attack();
|
||||
if (@event.IsActionPressed(GameInputs.Sprint))
|
||||
Settings.MoveSpeed *= 2;
|
||||
if (@event.IsActionReleased(GameInputs.Sprint))
|
||||
Settings.MoveSpeed /= 2;
|
||||
}
|
||||
|
||||
public void PlayTestAnimation()
|
||||
{
|
||||
PlayerFXAnimations.Play("test_animation");
|
||||
PlayerFXAnimations.Play("test_animation");
|
||||
}
|
||||
|
||||
public void OnPhysicsProcess(double delta)
|
||||
{
|
||||
PlayerLogic.Input(new PlayerLogic.Input.PhysicsTick(delta));
|
||||
PlayerLogic.Input(new PlayerLogic.Input.Moved(GlobalPosition, GlobalTransform));
|
||||
PlayerLogic.Input(new PlayerLogic.Input.PhysicsTick(delta));
|
||||
PlayerLogic.Input(new PlayerLogic.Input.Moved(GlobalPosition, GlobalTransform));
|
||||
}
|
||||
|
||||
public void Equip(EquipableItem equipable)
|
||||
{
|
||||
if (equipable.ItemTag == ItemTag.MysteryItem)
|
||||
{
|
||||
var rerolledItem = _itemReroller.RerollItem(equipable, Inventory);
|
||||
Equip(rerolledItem);
|
||||
return;
|
||||
}
|
||||
if (equipable.ItemTag == ItemTag.MysteryItem)
|
||||
{
|
||||
var rerolledItem = _itemReroller.RerollItem(equipable, Inventory);
|
||||
Equip(rerolledItem);
|
||||
return;
|
||||
}
|
||||
|
||||
HealthComponent.RaiseMaximumHP(equipable.BonusHP, false);
|
||||
VTComponent.RaiseMaximumVT(equipable.BonusVT, false);
|
||||
HealthComponent.RaiseMaximumHP(equipable.BonusHP, false);
|
||||
VTComponent.RaiseMaximumVT(equipable.BonusVT, false);
|
||||
|
||||
EquipmentComponent.Equip(equipable);
|
||||
EquipmentComponent.Equip(equipable);
|
||||
}
|
||||
|
||||
public void Unequip(EquipableItem equipable)
|
||||
{
|
||||
HealthComponent.SetMaximumHealth(HealthComponent.MaximumHP.Value - equipable.BonusHP);
|
||||
VTComponent.SetMaximumVT(VTComponent.MaximumVT.Value - equipable.BonusVT);
|
||||
HealthComponent.SetMaximumHealth(HealthComponent.MaximumHP.Value - equipable.BonusHP);
|
||||
VTComponent.SetMaximumVT(VTComponent.MaximumVT.Value - equipable.BonusVT);
|
||||
|
||||
EquipmentComponent.Unequip(equipable);
|
||||
EquipmentComponent.Unequip(equipable);
|
||||
}
|
||||
|
||||
private void CameraAnimations_AnimationFinished(StringName animName)
|
||||
{
|
||||
PointUpFinished?.Invoke();
|
||||
}
|
||||
|
||||
private static Vector3 GlobalInputVector
|
||||
{
|
||||
get
|
||||
{
|
||||
var rawInput = Input.GetVector(GameInputs.MoveLeft, GameInputs.MoveRight, GameInputs.MoveUp, GameInputs.MoveDown);
|
||||
var input = new Vector3
|
||||
{
|
||||
X = rawInput.X,
|
||||
Z = rawInput.Y
|
||||
};
|
||||
return input with { Y = 0f };
|
||||
}
|
||||
get
|
||||
{
|
||||
var rawInput = Input.GetVector(GameInputs.MoveLeft, GameInputs.MoveRight, GameInputs.MoveUp, GameInputs.MoveDown);
|
||||
var input = new Vector3
|
||||
{
|
||||
X = rawInput.X,
|
||||
Z = rawInput.Y
|
||||
};
|
||||
return input with { Y = 0f };
|
||||
}
|
||||
}
|
||||
|
||||
private static float LeftStrafeInputVector => Input.GetActionStrength(GameInputs.StrafeLeft);
|
||||
@@ -296,143 +314,143 @@ public partial class Player : CharacterBody3D, IPlayer, IProvide<IPlayer>
|
||||
|
||||
private void Attack()
|
||||
{
|
||||
if (PlayerIsHittingGeometry())
|
||||
AnimationPlayer.Play("hit_wall");
|
||||
else if (!AnimationPlayer.IsPlaying())
|
||||
PlayAttackAnimation();
|
||||
if (PlayerIsHittingGeometry())
|
||||
AnimationPlayer.Play("hit_wall");
|
||||
else if (!AnimationPlayer.IsPlaying())
|
||||
PlayAttackAnimation();
|
||||
}
|
||||
|
||||
private void ThrowItem()
|
||||
{
|
||||
var itemScene = GD.Load<PackedScene>("res://src/items/throwable/ThrowableItem.tscn");
|
||||
var throwItem = itemScene.Instantiate<ThrowableItem>();
|
||||
GetTree().Root.AddChildEx(throwItem);
|
||||
throwItem.GlobalPosition = CurrentPosition + new Vector3(0, 3.5f, 0);
|
||||
throwItem.GlobalRotation = GlobalRotation;
|
||||
var itemScene = GD.Load<PackedScene>("res://src/items/throwable/ThrowableItem.tscn");
|
||||
var throwItem = itemScene.Instantiate<ThrowableItem>();
|
||||
GetTree().Root.AddChildEx(throwItem);
|
||||
throwItem.GlobalPosition = CurrentPosition + new Vector3(0, 3.5f, 0);
|
||||
throwItem.GlobalRotation = GlobalRotation;
|
||||
}
|
||||
|
||||
private void PlayAttackAnimation()
|
||||
{
|
||||
SfxDatabase.Instance.Play(((Weapon)EquipmentComponent.EquippedWeapon.Value).SoundEffect);
|
||||
var attackSpeed = ((Weapon)EquipmentComponent.EquippedWeapon.Value).AttackSpeed;
|
||||
AnimationPlayer.SetSpeedScale((float)attackSpeed);
|
||||
AnimationPlayer.Play("attack");
|
||||
SfxDatabase.Instance.Play(((Weapon)EquipmentComponent.EquippedWeapon.Value).SoundEffect);
|
||||
var attackSpeed = ((Weapon)EquipmentComponent.EquippedWeapon.Value).AttackSpeed;
|
||||
AnimationPlayer.SetSpeedScale((float)attackSpeed);
|
||||
AnimationPlayer.Play("attack");
|
||||
}
|
||||
|
||||
private void OnExitTree()
|
||||
{
|
||||
PlayerLogic.Stop();
|
||||
PlayerBinding.Dispose();
|
||||
Hitbox.AreaEntered -= Hitbox_AreaEntered;
|
||||
CollisionDetector.AreaEntered -= CollisionDetector_AreaEntered;
|
||||
HealthComponent.HealthReachedZero -= Die;
|
||||
HealthTimer.Timeout -= OnHealthTimerTimeout;
|
||||
PlayerLogic.Stop();
|
||||
PlayerBinding.Dispose();
|
||||
Hitbox.AreaEntered -= Hitbox_AreaEntered;
|
||||
CollisionDetector.AreaEntered -= CollisionDetector_AreaEntered;
|
||||
HealthComponent.HealthReachedZero -= Die;
|
||||
HealthTimer.Timeout -= OnHealthTimerTimeout;
|
||||
}
|
||||
|
||||
private void Move(float delta)
|
||||
{
|
||||
var rawInput = GlobalInputVector;
|
||||
var strafeLeftInput = LeftStrafeInputVector;
|
||||
var strafeRightInput = RightStrafeInputVector;
|
||||
var rawInput = GlobalInputVector;
|
||||
var strafeLeftInput = LeftStrafeInputVector;
|
||||
var strafeRightInput = RightStrafeInputVector;
|
||||
|
||||
var transform = Transform;
|
||||
transform.Basis = new Basis(Vector3.Up, Settings.RotationSpeed * -rawInput.X * delta) * transform.Basis;
|
||||
var moveDirection = new Vector3(strafeRightInput - strafeLeftInput, 0, rawInput.Z).Normalized();
|
||||
var velocity = Basis * moveDirection * Settings.MoveSpeed * Settings.Acceleration;
|
||||
_knockbackStrength *= 0.9f;
|
||||
Transform = Transform with { Basis = transform.Basis };
|
||||
Velocity = velocity + (_knockbackDirection * _knockbackStrength);
|
||||
if (!WalkSFX.Playing && !Velocity.IsZeroApprox())
|
||||
WalkSFX.Play();
|
||||
else if (Velocity.IsZeroApprox())
|
||||
WalkSFX.Stop();
|
||||
MoveAndSlide();
|
||||
var transform = Transform;
|
||||
transform.Basis = new Basis(Vector3.Up, Settings.RotationSpeed * -rawInput.X * delta) * transform.Basis;
|
||||
var moveDirection = new Vector3(strafeRightInput - strafeLeftInput, 0, rawInput.Z).Normalized();
|
||||
var velocity = Basis * moveDirection * Settings.MoveSpeed * Settings.Acceleration;
|
||||
_knockbackStrength *= 0.9f;
|
||||
Transform = Transform with { Basis = transform.Basis };
|
||||
Velocity = velocity + (_knockbackDirection * _knockbackStrength);
|
||||
if (!WalkSFX.Playing && !Velocity.IsZeroApprox())
|
||||
WalkSFX.Play();
|
||||
else if (Velocity.IsZeroApprox())
|
||||
WalkSFX.Stop();
|
||||
MoveAndSlide();
|
||||
}
|
||||
|
||||
private void OnPlayerPositionUpdated(Vector3 globalPosition) => GlobalPosition = globalPosition;
|
||||
|
||||
private void OnHealthTimerTimeout()
|
||||
{
|
||||
if (VTComponent.CurrentVT.Value > 0)
|
||||
{
|
||||
if (((Accessory)EquipmentComponent.EquippedAccessory.Value).AccessoryTag == AccessoryTag.HalfVTConsumption)
|
||||
reduceOnTick = !reduceOnTick;
|
||||
if (VTComponent.CurrentVT.Value > 0)
|
||||
{
|
||||
if (((Accessory)EquipmentComponent.EquippedAccessory.Value).AccessoryTag == AccessoryTag.HalfVTConsumption)
|
||||
reduceOnTick = !reduceOnTick;
|
||||
|
||||
HealthComponent.Heal(1);
|
||||
HealthComponent.Heal(1);
|
||||
|
||||
if (reduceOnTick)
|
||||
VTComponent.Reduce(1);
|
||||
}
|
||||
else
|
||||
HealthComponent.Damage(1);
|
||||
if (reduceOnTick)
|
||||
VTComponent.Reduce(1);
|
||||
}
|
||||
else
|
||||
HealthComponent.Damage(1);
|
||||
}
|
||||
|
||||
private void Hitbox_AreaEntered(Area3D area)
|
||||
{
|
||||
var target = area.GetOwner();
|
||||
if (target is IEnemy enemy)
|
||||
HitEnemy(enemy);
|
||||
var target = area.GetOwner();
|
||||
if (target is IEnemy enemy)
|
||||
HitEnemy(enemy);
|
||||
}
|
||||
|
||||
private void HitEnemy(IEnemy enemy)
|
||||
{
|
||||
var ignoreElementalResistance = (EquipmentComponent.EquippedWeapon.Value as Weapon).WeaponTag == WeaponTag.IgnoreAffinity;
|
||||
var ignoreDefense = (EquipmentComponent.EquippedWeapon.Value as Weapon).WeaponTag == WeaponTag.IgnoreDefense;
|
||||
var isCriticalHit = BattleExtensions.IsCriticalHit(LuckComponent.Luck.Value + EquipmentComponent.BonusLuck);
|
||||
var totalDamage = AttackComponent.CurrentAttack.Value + EquipmentComponent.BonusAttack;
|
||||
var element = (EquipmentComponent.EquippedWeapon.Value as Weapon).WeaponElement;
|
||||
var ignoreElementalResistance = (EquipmentComponent.EquippedWeapon.Value as Weapon).WeaponTag == WeaponTag.IgnoreAffinity;
|
||||
var ignoreDefense = (EquipmentComponent.EquippedWeapon.Value as Weapon).WeaponTag == WeaponTag.IgnoreDefense;
|
||||
var isCriticalHit = BattleExtensions.IsCriticalHit(LuckComponent.Luck.Value + EquipmentComponent.BonusLuck);
|
||||
var totalDamage = AttackComponent.CurrentAttack.Value + EquipmentComponent.BonusAttack;
|
||||
var element = (EquipmentComponent.EquippedWeapon.Value as Weapon).WeaponElement;
|
||||
|
||||
if (isCriticalHit)
|
||||
{
|
||||
totalDamage += (int)(totalDamage * 0.5f);
|
||||
SfxDatabase.Instance.Play(SoundEffect.Crit);
|
||||
}
|
||||
if (isCriticalHit)
|
||||
{
|
||||
totalDamage += (int)(totalDamage * 0.5f);
|
||||
SfxDatabase.Instance.Play(SoundEffect.Crit);
|
||||
}
|
||||
|
||||
var baseAttack = new AttackData(totalDamage, element, ignoreDefense, ignoreElementalResistance);
|
||||
var damageDealt = DamageCalculator.CalculateDamage(baseAttack, enemy.DefenseComponent.CurrentDefense.Value, ElementalResistanceSet.None);
|
||||
enemy.HealthComponent.Damage(damageDealt);
|
||||
var baseAttack = new AttackData(totalDamage, element, ignoreDefense, ignoreElementalResistance);
|
||||
var damageDealt = DamageCalculator.CalculateDamage(baseAttack, enemy.DefenseComponent.CurrentDefense.Value, ElementalResistanceSet.None);
|
||||
enemy.HealthComponent.Damage(damageDealt);
|
||||
|
||||
if (((Weapon)EquipmentComponent.EquippedWeapon.Value).WeaponTag == WeaponTag.Knockback && enemy is IKnockbackable knockbackable)
|
||||
knockbackable.Knockback(0.3f, -CurrentBasis.Z.Normalized());
|
||||
if (((Weapon)EquipmentComponent.EquippedWeapon.Value).WeaponTag == WeaponTag.SelfDamage)
|
||||
HealthComponent.Damage(5);
|
||||
if (((Weapon)EquipmentComponent.EquippedWeapon.Value).WeaponTag == WeaponTag.Knockback && enemy is IKnockbackable knockbackable)
|
||||
knockbackable.Knockback(0.3f, -CurrentBasis.Z.Normalized());
|
||||
if (((Weapon)EquipmentComponent.EquippedWeapon.Value).WeaponTag == WeaponTag.SelfDamage)
|
||||
HealthComponent.Damage(5);
|
||||
}
|
||||
|
||||
private void CollisionDetector_AreaEntered(Area3D area)
|
||||
{
|
||||
if (area.GetParent() is InventoryItem inventoryItem)
|
||||
{
|
||||
var isAdded = Inventory.PickUpItem(inventoryItem);
|
||||
if (isAdded)
|
||||
inventoryItem.QueueFree();
|
||||
}
|
||||
if (area.GetParent() is DroppedItem droppedItem)
|
||||
{
|
||||
var isAdded = Inventory.PickUpItem(droppedItem.Item);
|
||||
if (isAdded)
|
||||
droppedItem.QueueFree();
|
||||
}
|
||||
if (area.GetParent() is ThrownItem thrownItem)
|
||||
{
|
||||
var isAdded = Inventory.PickUpItem(thrownItem.ItemThatIsThrown);
|
||||
if (isAdded)
|
||||
thrownItem.QueueFree();
|
||||
}
|
||||
if (area.GetParent() is Restorative restorative)
|
||||
{
|
||||
restorative.QueueFree();
|
||||
}
|
||||
if (area.GetParent() is InventoryItem inventoryItem)
|
||||
{
|
||||
var isAdded = Inventory.PickUpItem(inventoryItem);
|
||||
if (isAdded)
|
||||
inventoryItem.QueueFree();
|
||||
}
|
||||
if (area.GetParent() is DroppedItem droppedItem)
|
||||
{
|
||||
var isAdded = Inventory.PickUpItem(droppedItem.Item);
|
||||
if (isAdded)
|
||||
droppedItem.QueueFree();
|
||||
}
|
||||
if (area.GetParent() is ThrownItem thrownItem)
|
||||
{
|
||||
var isAdded = Inventory.PickUpItem(thrownItem.ItemThatIsThrown);
|
||||
if (isAdded)
|
||||
thrownItem.QueueFree();
|
||||
}
|
||||
if (area.GetParent() is Restorative restorative)
|
||||
{
|
||||
restorative.QueueFree();
|
||||
}
|
||||
}
|
||||
|
||||
private bool PlayerIsHittingGeometry()
|
||||
{
|
||||
var collisions = WallCheck.GetCollidingBodies();
|
||||
return collisions.Count > 0;
|
||||
var collisions = WallCheck.GetCollidingBodies();
|
||||
return collisions.Count > 0;
|
||||
}
|
||||
|
||||
private void WallCheck_BodyEntered(Node body)
|
||||
{
|
||||
GD.Print("Hit wall");
|
||||
AnimationPlayer.Stop();
|
||||
GD.Print("Hit wall");
|
||||
AnimationPlayer.Stop();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
[gd_scene load_steps=1729 format=3 uid="uid://cfecvvav8kkp6"]
|
||||
[gd_scene load_steps=1732 format=3 uid="uid://cfecvvav8kkp6"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://yxmiqy7i0t7r" path="res://src/player/Player.cs" id="1_xcol5"]
|
||||
[ext_resource type="PackedScene" uid="uid://didc6vnf5ftlg" path="res://src/camera/ShakeCamera.tscn" id="2_jtmj1"]
|
||||
@@ -46,6 +46,42 @@ material = SubResource("ShaderMaterial_jtmj1")
|
||||
flip_faces = true
|
||||
size = Vector2(2, 2)
|
||||
|
||||
[sub_resource type="Animation" id="Animation_ilpvp"]
|
||||
length = 0.001
|
||||
tracks/0/type = "value"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath(".:rotation")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 0,
|
||||
"values": [Vector3(0, 0, 0)]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id="Animation_ubmds"]
|
||||
resource_name = "look_up"
|
||||
tracks/0/type = "value"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath(".:rotation")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"times": PackedFloat32Array(0, 1),
|
||||
"transitions": PackedFloat32Array(1, 1),
|
||||
"update": 0,
|
||||
"values": [Vector3(0, 0, 0), Vector3(0.785398, 0, 0)]
|
||||
}
|
||||
|
||||
[sub_resource type="AnimationLibrary" id="AnimationLibrary_sifmb"]
|
||||
_data = {
|
||||
&"RESET": SubResource("Animation_ilpvp"),
|
||||
&"look_up": SubResource("Animation_ubmds")
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id="Animation_3ojaj"]
|
||||
resource_name = "IconAnimation"
|
||||
length = 2.5
|
||||
@@ -163,371 +199,6 @@ _data = {
|
||||
&"hit_wall": SubResource("Animation_qgbg1")
|
||||
}
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_gx6yx"]
|
||||
atlas = ExtResource("5_bngr8")
|
||||
region = Rect2(0, 0, 512, 512)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_5gt6s"]
|
||||
atlas = ExtResource("5_bngr8")
|
||||
region = Rect2(512, 0, 512, 512)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_syglp"]
|
||||
atlas = ExtResource("5_bngr8")
|
||||
region = Rect2(1024, 0, 512, 512)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_o81wv"]
|
||||
atlas = ExtResource("5_bngr8")
|
||||
region = Rect2(1536, 0, 512, 512)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_uc14s"]
|
||||
atlas = ExtResource("5_bngr8")
|
||||
region = Rect2(2048, 0, 512, 512)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_84vg4"]
|
||||
atlas = ExtResource("5_bngr8")
|
||||
region = Rect2(2560, 0, 512, 512)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_18gts"]
|
||||
atlas = ExtResource("5_bngr8")
|
||||
region = Rect2(3072, 0, 512, 512)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_sq31b"]
|
||||
atlas = ExtResource("5_bngr8")
|
||||
region = Rect2(3584, 0, 512, 512)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_ucph0"]
|
||||
atlas = ExtResource("5_bngr8")
|
||||
region = Rect2(4096, 0, 512, 512)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_5pe5a"]
|
||||
atlas = ExtResource("5_bngr8")
|
||||
region = Rect2(4608, 0, 512, 512)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_iqf1f"]
|
||||
atlas = ExtResource("5_bngr8")
|
||||
region = Rect2(5120, 0, 512, 512)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_58hdl"]
|
||||
atlas = ExtResource("5_bngr8")
|
||||
region = Rect2(5632, 0, 512, 512)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_3dk5l"]
|
||||
atlas = ExtResource("5_bngr8")
|
||||
region = Rect2(6144, 0, 512, 512)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_pmdkx"]
|
||||
atlas = ExtResource("5_bngr8")
|
||||
region = Rect2(6656, 0, 512, 512)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_delwj"]
|
||||
atlas = ExtResource("5_bngr8")
|
||||
region = Rect2(7168, 0, 512, 512)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_c0hrp"]
|
||||
atlas = ExtResource("5_bngr8")
|
||||
region = Rect2(7680, 0, 512, 512)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_nm3ps"]
|
||||
atlas = ExtResource("5_bngr8")
|
||||
region = Rect2(8192, 0, 512, 512)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_ax7gm"]
|
||||
atlas = ExtResource("5_bngr8")
|
||||
region = Rect2(8704, 0, 512, 512)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_xdngf"]
|
||||
atlas = ExtResource("5_bngr8")
|
||||
region = Rect2(9216, 0, 512, 512)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_qjoth"]
|
||||
atlas = ExtResource("5_bngr8")
|
||||
region = Rect2(9728, 0, 512, 512)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_ir6la"]
|
||||
atlas = ExtResource("5_bngr8")
|
||||
region = Rect2(10240, 0, 512, 512)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_kvy4v"]
|
||||
atlas = ExtResource("5_bngr8")
|
||||
region = Rect2(10752, 0, 512, 512)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_6y4ab"]
|
||||
atlas = ExtResource("5_bngr8")
|
||||
region = Rect2(11264, 0, 512, 512)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_hhwgf"]
|
||||
atlas = ExtResource("5_bngr8")
|
||||
region = Rect2(11776, 0, 512, 512)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_l178f"]
|
||||
atlas = ExtResource("5_bngr8")
|
||||
region = Rect2(12288, 0, 512, 512)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_0npj3"]
|
||||
atlas = ExtResource("5_bngr8")
|
||||
region = Rect2(12800, 0, 512, 512)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_dcc3e"]
|
||||
atlas = ExtResource("5_bngr8")
|
||||
region = Rect2(13312, 0, 512, 512)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_iqcna"]
|
||||
atlas = ExtResource("5_bngr8")
|
||||
region = Rect2(13824, 0, 512, 512)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_0u5oq"]
|
||||
atlas = ExtResource("5_bngr8")
|
||||
region = Rect2(14336, 0, 512, 512)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_qninq"]
|
||||
atlas = ExtResource("5_bngr8")
|
||||
region = Rect2(14848, 0, 512, 512)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_5vt5r"]
|
||||
atlas = ExtResource("5_bngr8")
|
||||
region = Rect2(15360, 0, 512, 512)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_a3n34"]
|
||||
atlas = ExtResource("5_bngr8")
|
||||
region = Rect2(15872, 0, 512, 512)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_hh1fj"]
|
||||
atlas = ExtResource("5_bngr8")
|
||||
region = Rect2(0, 512, 512, 512)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_4ldcx"]
|
||||
atlas = ExtResource("5_bngr8")
|
||||
region = Rect2(512, 512, 512, 512)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_07bvn"]
|
||||
atlas = ExtResource("5_bngr8")
|
||||
region = Rect2(1024, 512, 512, 512)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_rqdqm"]
|
||||
atlas = ExtResource("5_bngr8")
|
||||
region = Rect2(1536, 512, 512, 512)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_mjb05"]
|
||||
atlas = ExtResource("5_bngr8")
|
||||
region = Rect2(2048, 512, 512, 512)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_r0mys"]
|
||||
atlas = ExtResource("5_bngr8")
|
||||
region = Rect2(2560, 512, 512, 512)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_ro8ch"]
|
||||
atlas = ExtResource("5_bngr8")
|
||||
region = Rect2(3072, 512, 512, 512)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_c5lge"]
|
||||
atlas = ExtResource("5_bngr8")
|
||||
region = Rect2(3584, 512, 512, 512)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_o0af2"]
|
||||
atlas = ExtResource("5_bngr8")
|
||||
region = Rect2(4096, 512, 512, 512)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_ht5qq"]
|
||||
atlas = ExtResource("5_bngr8")
|
||||
region = Rect2(4608, 512, 512, 512)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_spm6q"]
|
||||
atlas = ExtResource("5_bngr8")
|
||||
region = Rect2(5120, 512, 512, 512)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_baipy"]
|
||||
atlas = ExtResource("5_bngr8")
|
||||
region = Rect2(5632, 512, 512, 512)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_i0amg"]
|
||||
atlas = ExtResource("5_bngr8")
|
||||
region = Rect2(6144, 512, 512, 512)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_xpptc"]
|
||||
atlas = ExtResource("5_bngr8")
|
||||
region = Rect2(6656, 512, 512, 512)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_bxeg4"]
|
||||
atlas = ExtResource("5_bngr8")
|
||||
region = Rect2(7168, 512, 512, 512)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_xgu6y"]
|
||||
atlas = ExtResource("5_bngr8")
|
||||
region = Rect2(7680, 512, 512, 512)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_53n88"]
|
||||
atlas = ExtResource("5_bngr8")
|
||||
region = Rect2(8192, 512, 512, 512)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_gwmts"]
|
||||
atlas = ExtResource("5_bngr8")
|
||||
region = Rect2(8704, 512, 512, 512)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_7wi2f"]
|
||||
atlas = ExtResource("5_bngr8")
|
||||
region = Rect2(9216, 512, 512, 512)
|
||||
|
||||
[sub_resource type="SpriteFrames" id="SpriteFrames_xbcdg"]
|
||||
animations = [{
|
||||
"frames": [{
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_gx6yx")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_5gt6s")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_syglp")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_o81wv")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_uc14s")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_84vg4")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_18gts")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_sq31b")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_ucph0")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_5pe5a")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_iqf1f")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_58hdl")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_3dk5l")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_pmdkx")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_delwj")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_c0hrp")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_nm3ps")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_ax7gm")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_xdngf")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_qjoth")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_ir6la")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_kvy4v")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_6y4ab")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_hhwgf")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_l178f")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_0npj3")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_dcc3e")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_iqcna")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_0u5oq")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_qninq")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_5vt5r")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_a3n34")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_hh1fj")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_4ldcx")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_07bvn")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_rqdqm")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_mjb05")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_r0mys")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_ro8ch")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_c5lge")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_o0af2")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_ht5qq")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_spm6q")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_baipy")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_i0amg")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_xpptc")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_bxeg4")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_xgu6y")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_53n88")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_gwmts")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_7wi2f")
|
||||
}],
|
||||
"loop": false,
|
||||
"name": &"default",
|
||||
"speed": 64.0
|
||||
}]
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_eu047"]
|
||||
atlas = ExtResource("6_ct55r")
|
||||
region = Rect2(0, 0, 512, 512)
|
||||
@@ -1271,6 +942,442 @@ animations = [{
|
||||
"speed": 32.0
|
||||
}]
|
||||
|
||||
[sub_resource type="Animation" id="Animation_j5wmh"]
|
||||
resource_name = "Divinity_Recall"
|
||||
length = 3.46667
|
||||
tracks/0/type = "value"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath("SubViewportContainer/SubViewport/Divinity Recall:sprite_frames")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"times": PackedFloat32Array(0, 3.46667),
|
||||
"transitions": PackedFloat32Array(1, 1),
|
||||
"update": 1,
|
||||
"values": [SubResource("SpriteFrames_xtuex"), SubResource("SpriteFrames_xtuex")]
|
||||
}
|
||||
tracks/1/type = "value"
|
||||
tracks/1/imported = false
|
||||
tracks/1/enabled = true
|
||||
tracks/1/path = NodePath("SubViewportContainer/SubViewport/Divinity Recall:modulate")
|
||||
tracks/1/interp = 1
|
||||
tracks/1/loop_wrap = true
|
||||
tracks/1/keys = {
|
||||
"times": PackedFloat32Array(0.0333333, 1.06667, 2.7),
|
||||
"transitions": PackedFloat32Array(1, 1, 1),
|
||||
"update": 0,
|
||||
"values": [Color(1, 1, 1, 1), Color(1, 1, 1, 1), Color(1, 1, 1, 0)]
|
||||
}
|
||||
tracks/2/type = "value"
|
||||
tracks/2/imported = false
|
||||
tracks/2/enabled = true
|
||||
tracks/2/path = NodePath("SubViewportContainer/SubViewport/ColorRect:color")
|
||||
tracks/2/interp = 1
|
||||
tracks/2/loop_wrap = true
|
||||
tracks/2/keys = {
|
||||
"times": PackedFloat32Array(0, 0.0333333, 0.0666667, 0.1, 0.133333, 0.166667, 0.2, 0.233333, 0.266667),
|
||||
"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1, 1, 1),
|
||||
"update": 0,
|
||||
"values": [Color(1, 1, 1, 0), Color(1, 1, 1, 0.623529), Color(1, 1, 1, 0), Color(1, 1, 1, 0), Color(1, 1, 1, 0.623529), Color(1, 1, 1, 0), Color(1, 1, 1, 0), Color(1, 1, 1, 0.623529), Color(1, 1, 1, 0)]
|
||||
}
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_gx6yx"]
|
||||
atlas = ExtResource("5_bngr8")
|
||||
region = Rect2(0, 0, 512, 512)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_5gt6s"]
|
||||
atlas = ExtResource("5_bngr8")
|
||||
region = Rect2(512, 0, 512, 512)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_syglp"]
|
||||
atlas = ExtResource("5_bngr8")
|
||||
region = Rect2(1024, 0, 512, 512)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_o81wv"]
|
||||
atlas = ExtResource("5_bngr8")
|
||||
region = Rect2(1536, 0, 512, 512)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_uc14s"]
|
||||
atlas = ExtResource("5_bngr8")
|
||||
region = Rect2(2048, 0, 512, 512)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_84vg4"]
|
||||
atlas = ExtResource("5_bngr8")
|
||||
region = Rect2(2560, 0, 512, 512)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_18gts"]
|
||||
atlas = ExtResource("5_bngr8")
|
||||
region = Rect2(3072, 0, 512, 512)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_sq31b"]
|
||||
atlas = ExtResource("5_bngr8")
|
||||
region = Rect2(3584, 0, 512, 512)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_ucph0"]
|
||||
atlas = ExtResource("5_bngr8")
|
||||
region = Rect2(4096, 0, 512, 512)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_5pe5a"]
|
||||
atlas = ExtResource("5_bngr8")
|
||||
region = Rect2(4608, 0, 512, 512)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_iqf1f"]
|
||||
atlas = ExtResource("5_bngr8")
|
||||
region = Rect2(5120, 0, 512, 512)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_58hdl"]
|
||||
atlas = ExtResource("5_bngr8")
|
||||
region = Rect2(5632, 0, 512, 512)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_3dk5l"]
|
||||
atlas = ExtResource("5_bngr8")
|
||||
region = Rect2(6144, 0, 512, 512)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_pmdkx"]
|
||||
atlas = ExtResource("5_bngr8")
|
||||
region = Rect2(6656, 0, 512, 512)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_delwj"]
|
||||
atlas = ExtResource("5_bngr8")
|
||||
region = Rect2(7168, 0, 512, 512)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_c0hrp"]
|
||||
atlas = ExtResource("5_bngr8")
|
||||
region = Rect2(7680, 0, 512, 512)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_nm3ps"]
|
||||
atlas = ExtResource("5_bngr8")
|
||||
region = Rect2(8192, 0, 512, 512)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_ax7gm"]
|
||||
atlas = ExtResource("5_bngr8")
|
||||
region = Rect2(8704, 0, 512, 512)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_xdngf"]
|
||||
atlas = ExtResource("5_bngr8")
|
||||
region = Rect2(9216, 0, 512, 512)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_qjoth"]
|
||||
atlas = ExtResource("5_bngr8")
|
||||
region = Rect2(9728, 0, 512, 512)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_ir6la"]
|
||||
atlas = ExtResource("5_bngr8")
|
||||
region = Rect2(10240, 0, 512, 512)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_kvy4v"]
|
||||
atlas = ExtResource("5_bngr8")
|
||||
region = Rect2(10752, 0, 512, 512)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_6y4ab"]
|
||||
atlas = ExtResource("5_bngr8")
|
||||
region = Rect2(11264, 0, 512, 512)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_hhwgf"]
|
||||
atlas = ExtResource("5_bngr8")
|
||||
region = Rect2(11776, 0, 512, 512)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_l178f"]
|
||||
atlas = ExtResource("5_bngr8")
|
||||
region = Rect2(12288, 0, 512, 512)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_0npj3"]
|
||||
atlas = ExtResource("5_bngr8")
|
||||
region = Rect2(12800, 0, 512, 512)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_dcc3e"]
|
||||
atlas = ExtResource("5_bngr8")
|
||||
region = Rect2(13312, 0, 512, 512)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_iqcna"]
|
||||
atlas = ExtResource("5_bngr8")
|
||||
region = Rect2(13824, 0, 512, 512)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_0u5oq"]
|
||||
atlas = ExtResource("5_bngr8")
|
||||
region = Rect2(14336, 0, 512, 512)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_qninq"]
|
||||
atlas = ExtResource("5_bngr8")
|
||||
region = Rect2(14848, 0, 512, 512)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_5vt5r"]
|
||||
atlas = ExtResource("5_bngr8")
|
||||
region = Rect2(15360, 0, 512, 512)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_a3n34"]
|
||||
atlas = ExtResource("5_bngr8")
|
||||
region = Rect2(15872, 0, 512, 512)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_hh1fj"]
|
||||
atlas = ExtResource("5_bngr8")
|
||||
region = Rect2(0, 512, 512, 512)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_4ldcx"]
|
||||
atlas = ExtResource("5_bngr8")
|
||||
region = Rect2(512, 512, 512, 512)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_07bvn"]
|
||||
atlas = ExtResource("5_bngr8")
|
||||
region = Rect2(1024, 512, 512, 512)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_rqdqm"]
|
||||
atlas = ExtResource("5_bngr8")
|
||||
region = Rect2(1536, 512, 512, 512)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_mjb05"]
|
||||
atlas = ExtResource("5_bngr8")
|
||||
region = Rect2(2048, 512, 512, 512)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_r0mys"]
|
||||
atlas = ExtResource("5_bngr8")
|
||||
region = Rect2(2560, 512, 512, 512)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_ro8ch"]
|
||||
atlas = ExtResource("5_bngr8")
|
||||
region = Rect2(3072, 512, 512, 512)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_c5lge"]
|
||||
atlas = ExtResource("5_bngr8")
|
||||
region = Rect2(3584, 512, 512, 512)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_o0af2"]
|
||||
atlas = ExtResource("5_bngr8")
|
||||
region = Rect2(4096, 512, 512, 512)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_ht5qq"]
|
||||
atlas = ExtResource("5_bngr8")
|
||||
region = Rect2(4608, 512, 512, 512)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_spm6q"]
|
||||
atlas = ExtResource("5_bngr8")
|
||||
region = Rect2(5120, 512, 512, 512)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_baipy"]
|
||||
atlas = ExtResource("5_bngr8")
|
||||
region = Rect2(5632, 512, 512, 512)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_i0amg"]
|
||||
atlas = ExtResource("5_bngr8")
|
||||
region = Rect2(6144, 512, 512, 512)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_xpptc"]
|
||||
atlas = ExtResource("5_bngr8")
|
||||
region = Rect2(6656, 512, 512, 512)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_bxeg4"]
|
||||
atlas = ExtResource("5_bngr8")
|
||||
region = Rect2(7168, 512, 512, 512)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_xgu6y"]
|
||||
atlas = ExtResource("5_bngr8")
|
||||
region = Rect2(7680, 512, 512, 512)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_53n88"]
|
||||
atlas = ExtResource("5_bngr8")
|
||||
region = Rect2(8192, 512, 512, 512)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_gwmts"]
|
||||
atlas = ExtResource("5_bngr8")
|
||||
region = Rect2(8704, 512, 512, 512)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_7wi2f"]
|
||||
atlas = ExtResource("5_bngr8")
|
||||
region = Rect2(9216, 512, 512, 512)
|
||||
|
||||
[sub_resource type="SpriteFrames" id="SpriteFrames_xbcdg"]
|
||||
animations = [{
|
||||
"frames": [{
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_gx6yx")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_5gt6s")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_syglp")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_o81wv")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_uc14s")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_84vg4")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_18gts")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_sq31b")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_ucph0")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_5pe5a")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_iqf1f")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_58hdl")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_3dk5l")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_pmdkx")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_delwj")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_c0hrp")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_nm3ps")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_ax7gm")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_xdngf")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_qjoth")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_ir6la")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_kvy4v")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_6y4ab")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_hhwgf")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_l178f")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_0npj3")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_dcc3e")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_iqcna")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_0u5oq")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_qninq")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_5vt5r")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_a3n34")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_hh1fj")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_4ldcx")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_07bvn")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_rqdqm")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_mjb05")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_r0mys")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_ro8ch")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_c5lge")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_o0af2")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_ht5qq")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_spm6q")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_baipy")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_i0amg")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_xpptc")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_bxeg4")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_xgu6y")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_53n88")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_gwmts")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_7wi2f")
|
||||
}],
|
||||
"loop": false,
|
||||
"name": &"default",
|
||||
"speed": 64.0
|
||||
}]
|
||||
|
||||
[sub_resource type="Animation" id="Animation_rxepx"]
|
||||
resource_name = "GeoReactor Air"
|
||||
length = 1.66667
|
||||
tracks/0/type = "value"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath("SubViewportContainer/SubViewport/Geomantic Reactor Air:sprite_frames")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"times": PackedFloat32Array(0, 1.66667),
|
||||
"transitions": PackedFloat32Array(1, 1),
|
||||
"update": 0,
|
||||
"values": [SubResource("SpriteFrames_xbcdg"), SubResource("SpriteFrames_xbcdg")]
|
||||
}
|
||||
tracks/1/type = "value"
|
||||
tracks/1/imported = false
|
||||
tracks/1/enabled = true
|
||||
tracks/1/path = NodePath("SubViewportContainer/SubViewport/ColorRect:color")
|
||||
tracks/1/interp = 1
|
||||
tracks/1/loop_wrap = true
|
||||
tracks/1/keys = {
|
||||
"times": PackedFloat32Array(0, 0.0333333, 0.0666667),
|
||||
"transitions": PackedFloat32Array(1, 1, 1),
|
||||
"update": 0,
|
||||
"values": [Color(1, 1, 1, 0), Color(1, 1, 1, 0.623529), Color(1, 1, 1, 0)]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id="Animation_27b85"]
|
||||
resource_name = "GeoReactor Water"
|
||||
|
||||
[sub_resource type="Animation" id="Animation_jtmj1"]
|
||||
length = 0.001
|
||||
tracks/0/type = "value"
|
||||
@@ -1568,77 +1675,6 @@ tracks/1/keys = {
|
||||
"values": [Color(1, 1, 1, 0), Color(1, 1, 1, 1), Color(1, 1, 1, 0.48), Color(1, 1, 1, 1), Color(1, 1, 1, 0.48), Color(1, 1, 1, 0)]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id="Animation_j5wmh"]
|
||||
resource_name = "Divinity_Recall"
|
||||
length = 3.46667
|
||||
tracks/0/type = "value"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath("SubViewportContainer/SubViewport/Divinity Recall:sprite_frames")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"times": PackedFloat32Array(0, 3.46667),
|
||||
"transitions": PackedFloat32Array(1, 1),
|
||||
"update": 1,
|
||||
"values": [SubResource("SpriteFrames_xtuex"), SubResource("SpriteFrames_xtuex")]
|
||||
}
|
||||
tracks/1/type = "value"
|
||||
tracks/1/imported = false
|
||||
tracks/1/enabled = true
|
||||
tracks/1/path = NodePath("SubViewportContainer/SubViewport/Divinity Recall:modulate")
|
||||
tracks/1/interp = 1
|
||||
tracks/1/loop_wrap = true
|
||||
tracks/1/keys = {
|
||||
"times": PackedFloat32Array(0.0333333, 1.06667, 2.7),
|
||||
"transitions": PackedFloat32Array(1, 1, 1),
|
||||
"update": 0,
|
||||
"values": [Color(1, 1, 1, 1), Color(1, 1, 1, 1), Color(1, 1, 1, 0)]
|
||||
}
|
||||
tracks/2/type = "value"
|
||||
tracks/2/imported = false
|
||||
tracks/2/enabled = true
|
||||
tracks/2/path = NodePath("SubViewportContainer/SubViewport/ColorRect:color")
|
||||
tracks/2/interp = 1
|
||||
tracks/2/loop_wrap = true
|
||||
tracks/2/keys = {
|
||||
"times": PackedFloat32Array(0, 0.0333333, 0.0666667, 0.1, 0.133333, 0.166667, 0.2, 0.233333, 0.266667),
|
||||
"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1, 1, 1),
|
||||
"update": 0,
|
||||
"values": [Color(1, 1, 1, 0), Color(1, 1, 1, 0.623529), Color(1, 1, 1, 0), Color(1, 1, 1, 0), Color(1, 1, 1, 0.623529), Color(1, 1, 1, 0), Color(1, 1, 1, 0), Color(1, 1, 1, 0.623529), Color(1, 1, 1, 0)]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id="Animation_rxepx"]
|
||||
resource_name = "GeoReactor Air"
|
||||
length = 1.66667
|
||||
tracks/0/type = "value"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath("SubViewportContainer/SubViewport/Geomantic Reactor Air:sprite_frames")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"times": PackedFloat32Array(0, 1.66667),
|
||||
"transitions": PackedFloat32Array(1, 1),
|
||||
"update": 0,
|
||||
"values": [SubResource("SpriteFrames_xbcdg"), SubResource("SpriteFrames_xbcdg")]
|
||||
}
|
||||
tracks/1/type = "value"
|
||||
tracks/1/imported = false
|
||||
tracks/1/enabled = true
|
||||
tracks/1/path = NodePath("SubViewportContainer/SubViewport/ColorRect:color")
|
||||
tracks/1/interp = 1
|
||||
tracks/1/loop_wrap = true
|
||||
tracks/1/keys = {
|
||||
"times": PackedFloat32Array(0, 0.0333333, 0.0666667),
|
||||
"transitions": PackedFloat32Array(1, 1, 1),
|
||||
"update": 0,
|
||||
"values": [Color(1, 1, 1, 0), Color(1, 1, 1, 0.623529), Color(1, 1, 1, 0)]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id="Animation_27b85"]
|
||||
resource_name = "GeoReactor Water"
|
||||
|
||||
[sub_resource type="AnimationLibrary" id="AnimationLibrary_ebyyx"]
|
||||
_data = {
|
||||
&"Divinity_Recall": SubResource("Animation_j5wmh"),
|
||||
@@ -12346,6 +12382,12 @@ shadow_blur = 2.038
|
||||
omni_range = 6.0
|
||||
omni_attenuation = 0.017
|
||||
|
||||
[node name="CameraAnimations" type="AnimationPlayer" parent="Camera"]
|
||||
unique_name_in_owner = true
|
||||
libraries = {
|
||||
&"": SubResource("AnimationLibrary_sifmb")
|
||||
}
|
||||
|
||||
[node name="Minimap" type="Node3D" parent="."]
|
||||
|
||||
[node name="Minimap Sprite" type="Sprite3D" parent="Minimap"]
|
||||
@@ -12499,7 +12541,6 @@ frame_progress = 0.0753843
|
||||
|
||||
[node name="ItemVFX" type="Sprite2D" parent="ScreenFX/SubViewportContainer/SubViewport"]
|
||||
position = Vector2(6.10352e-05, 6.10352e-05)
|
||||
scale = Vector2(1, 1)
|
||||
|
||||
[node name="Kyuuketsuki" type="AnimatedSprite2D" parent="ScreenFX/SubViewportContainer/SubViewport"]
|
||||
modulate = Color(1, 1, 1, 0.508)
|
||||
|
||||
Reference in New Issue
Block a user