Compare commits
4 Commits
v0.2.82
...
aafd3cbfbf
| Author | SHA1 | Date | |
|---|---|---|---|
| aafd3cbfbf | |||
| 30817576b9 | |||
| 70d0f66df3 | |||
| c145c709e3 |
@@ -100,7 +100,7 @@ jobs:
|
||||
# - uses: actions/setup-dotnet@v5
|
||||
# name: 💽 Setup .NET SDK
|
||||
# with:
|
||||
# dotnet-version: '9.0.x'
|
||||
# dotnet-version: ${DOTNET_VERSION}
|
||||
#
|
||||
# - name: 📦 Restore Dependencies
|
||||
# run: |
|
||||
@@ -114,7 +114,7 @@ jobs:
|
||||
# with:
|
||||
# # Version must include major, minor, and patch, and be >= 4.0.0
|
||||
# # Pre-release label is optional.
|
||||
# version: '4.6.2'
|
||||
# version: ${GODOT_VERSION}
|
||||
# # Use .NET-enabled version of Godot (the default is also true).
|
||||
# use-dotnet: true
|
||||
# # Include the Godot Export Templates (the default is false).
|
||||
@@ -126,21 +126,20 @@ jobs:
|
||||
# godot --version
|
||||
#
|
||||
# - name: 🧑🔬 Generate .NET Bindings
|
||||
# run: godot --headless --build-solutions --import --quit || exit 0
|
||||
# run: godot --headless --build-solutions --quit || exit 0
|
||||
#
|
||||
# - name: 🦺 Build Projects
|
||||
# run: dotnet build --configuration ExportRelease
|
||||
# run: dotnet build --configuration Release
|
||||
#
|
||||
# - name: Run C# Tests
|
||||
# env:
|
||||
# GODOT_BIN: /root/bin/godot
|
||||
# GODOT_BIN: godot
|
||||
# shell: bash
|
||||
# run: |
|
||||
# dotnet test --no-build --settings .runsettings --results-directory ./reports --logger "console;verbosity=normal" --logger "trx;LogFileName=results.xml" -- GdUnit4.Parameters="--headless --import --quit"
|
||||
# dotnet test --no-build --settings .runsettings --results-directory ./reports --logger "console;verbosity=normal" --logger "trx;LogFileName=results.xml" -- GdUnit4.Parameters="--verbose --headless --import"
|
||||
#
|
||||
# - name: Upload test report
|
||||
# uses: actions/upload-artifact@v3-node20
|
||||
# if: always()
|
||||
# with:
|
||||
# name: Test Report
|
||||
# path: ${{ github.workspace }}/reports/test-result.html
|
||||
|
||||
1
.gitignore
vendored
1
.gitignore
vendored
@@ -11,7 +11,6 @@
|
||||
|
||||
/builds
|
||||
/communication
|
||||
/reports
|
||||
|
||||
# Imported translations (automatically generated from CSV files)
|
||||
*.translation
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
<MaxCpuCount>1</MaxCpuCount>
|
||||
<ResultsDirectory>./TestResults</ResultsDirectory>
|
||||
<TargetFrameworks>net8.0;net9.0</TargetFrameworks>
|
||||
<TestSessionTimeout>60000</TestSessionTimeout>
|
||||
<TestSessionTimeout>180000</TestSessionTimeout>
|
||||
<TreatNoTestsAsError>true</TreatNoTestsAsError>
|
||||
</RunConfiguration>
|
||||
|
||||
@@ -30,7 +30,7 @@
|
||||
|
||||
<GdUnit4>
|
||||
<!-- Additional Godot runtime parameters. These are passed to the Godot executable when running tests.-->
|
||||
<Parameters>"--verbose --headless --import --quit"</Parameters>
|
||||
<Parameters>"--verbose"</Parameters>
|
||||
|
||||
<!-- Controls the display name format of test cases in the test results.
|
||||
Allowed values:
|
||||
|
||||
@@ -128,9 +128,9 @@
|
||||
<ItemGroup>
|
||||
<Folder Include="addons\" />
|
||||
<Folder Include="tests\" />
|
||||
<Folder Include="tools\" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Chickensoft.Sync" Version="2.3.0" />
|
||||
<PackageReference Include="RustyOptions" Version="0.10.1" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
|
||||
@@ -32,21 +32,12 @@ func _exit_tree() -> void:
|
||||
|
||||
func close() -> void:
|
||||
menu_closing.emit()
|
||||
hide_menu()
|
||||
queue_free()
|
||||
|
||||
func hide_menu() -> void:
|
||||
_scene_tree.paused = _initial_pause_state
|
||||
Input.set_mouse_mode(_initial_mouse_mode)
|
||||
if is_instance_valid(_initial_focus_control) and _initial_focus_control.is_inside_tree():
|
||||
_initial_focus_control.focus_mode = _initial_focus_mode
|
||||
_initial_focus_control.grab_focus()
|
||||
|
||||
GUIDE.disable_mapping_context(menu_context)
|
||||
for previous_context in previous_mapping_contexts:
|
||||
GUIDE.enable_mapping_context(previous_context)
|
||||
|
||||
visible = false
|
||||
queue_free()
|
||||
|
||||
func _handle_cancel_input() -> void:
|
||||
close()
|
||||
@@ -54,7 +45,7 @@ func _handle_cancel_input() -> void:
|
||||
func _on_close_button_pressed() -> void:
|
||||
close()
|
||||
|
||||
func show_menu() -> void:
|
||||
func _enter_tree() -> void:
|
||||
_scene_tree = get_tree()
|
||||
_initial_pause_state = _scene_tree.paused
|
||||
_initial_mouse_mode = Input.get_mouse_mode()
|
||||
@@ -70,10 +61,5 @@ func show_menu() -> void:
|
||||
for previous_context in previous_mapping_contexts:
|
||||
GUIDE.disable_mapping_context(previous_context)
|
||||
GUIDE.enable_mapping_context(menu_context)
|
||||
|
||||
visible = true
|
||||
|
||||
func _enter_tree() -> void:
|
||||
show_menu()
|
||||
back_action.triggered.connect(_handle_cancel_input)
|
||||
|
||||
|
||||
@@ -3,21 +3,19 @@
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://bun38n3ff5wvv"
|
||||
path.s3tc="res://.godot/imported/keyboard_shift_icon_outline.svg-21854f9aeab065c26ab9185b7d09e5f2.s3tc.ctex"
|
||||
path.etc2="res://.godot/imported/keyboard_shift_icon_outline.svg-21854f9aeab065c26ab9185b7d09e5f2.etc2.ctex"
|
||||
path="res://.godot/imported/keyboard_shift_icon_outline.svg-21854f9aeab065c26ab9185b7d09e5f2.ctex"
|
||||
metadata={
|
||||
"imported_formats": ["s3tc_bptc", "etc2_astc"],
|
||||
"vram_texture": true
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/ui/input-prompts/Keyboard & Mouse/Vector/keyboard_shift_icon_outline.svg"
|
||||
dest_files=["res://.godot/imported/keyboard_shift_icon_outline.svg-21854f9aeab065c26ab9185b7d09e5f2.s3tc.ctex", "res://.godot/imported/keyboard_shift_icon_outline.svg-21854f9aeab065c26ab9185b7d09e5f2.etc2.ctex"]
|
||||
dest_files=["res://.godot/imported/keyboard_shift_icon_outline.svg-21854f9aeab065c26ab9185b7d09e5f2.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=2
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/uastc_level=0
|
||||
@@ -25,7 +23,7 @@ compress/rdo_quality_loss=0.0
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=true
|
||||
mipmaps/generate=false
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
@@ -39,7 +37,7 @@ process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=0
|
||||
detect_3d/compress_to=1
|
||||
svg/scale=1.0
|
||||
editor/scale_with_editor_scale=false
|
||||
editor/convert_colors_with_editor_theme=false
|
||||
|
||||
@@ -1,73 +0,0 @@
|
||||
// Copyright © Gamesmiths Guild.
|
||||
|
||||
using Chickensoft.AutoInject;
|
||||
using Chickensoft.Introspection;
|
||||
using Gamesmiths.Forge.Core;
|
||||
using Gamesmiths.Forge.Cues;
|
||||
using Gamesmiths.Forge.Effects;
|
||||
using Gamesmiths.Forge.Events;
|
||||
using Gamesmiths.Forge.Godot.Core;
|
||||
using Gamesmiths.Forge.Godot.Resources;
|
||||
using Gamesmiths.Forge.Statescript;
|
||||
using Gamesmiths.Forge.Tags;
|
||||
using Godot;
|
||||
|
||||
namespace Movementtests.tools;
|
||||
|
||||
[GlobalClass]
|
||||
[Icon("uid://cu6ncpuumjo20")]
|
||||
[Meta(typeof(IAutoNode))]
|
||||
public partial class ForgeEntityNode : Node3D, IForgeEntity
|
||||
{
|
||||
public override void _Notification(int what) => this.Notify(what);
|
||||
|
||||
[Dependency]
|
||||
public TagsManager TagsManager => this.DependOn(() => ForgeManagers.Instance.TagsManager);
|
||||
[Dependency]
|
||||
public CuesManager CuesManager => this.DependOn(() => ForgeManagers.Instance.CuesManager);
|
||||
|
||||
[Export]
|
||||
public ForgeTagContainer? BaseTags { get; set; }
|
||||
[Export]
|
||||
public ForgeSharedVariableSet? SharedVariableDefinitions { get; set; }
|
||||
|
||||
public required EntityAttributes Attributes { get; set; }
|
||||
|
||||
public required EntityTags Tags { get; set; }
|
||||
|
||||
public required EffectsManager EffectsManager { get; set; }
|
||||
|
||||
public required EntityAbilities Abilities { get; set; }
|
||||
|
||||
public required EventManager Events { get; set; }
|
||||
|
||||
public required Variables SharedVariables { get; set; }
|
||||
|
||||
public void OnReady()
|
||||
{
|
||||
}
|
||||
|
||||
public void OnResolved()
|
||||
{
|
||||
BaseTags ??= new ForgeTagContainer();
|
||||
Tags = new EntityTags(BaseTags.GetTagContainer());
|
||||
Attributes = new EntityAttributes([.. ForgeUtils.CollectAttributeList(this)]);
|
||||
Abilities = new EntityAbilities(this);
|
||||
Events = new EventManager();
|
||||
|
||||
SharedVariables = new Variables();
|
||||
SharedVariableDefinitions?.PopulateVariables(SharedVariables);
|
||||
|
||||
EffectsManager = new EffectsManager(this, CuesManager);
|
||||
var effectApplier = new EffectApplier(this);
|
||||
effectApplier.ApplyEffects(this, this, this);
|
||||
}
|
||||
|
||||
public override void _Process(double delta)
|
||||
{
|
||||
base._Process(delta);
|
||||
|
||||
EffectsManager.UpdateEffects(delta);
|
||||
Abilities.UpdateAbilities(delta);
|
||||
}
|
||||
}
|
||||
@@ -1 +0,0 @@
|
||||
uid://rpcbb54q4atx
|
||||
@@ -12,7 +12,6 @@ public class ExplodingSwordBehavior(PackedScene explosion, float radius) : IAbil
|
||||
{
|
||||
if (context.Owner is not Node3D owner)
|
||||
{
|
||||
GD.Print("Owner isn't a Node3D");
|
||||
context.InstanceHandle.End();
|
||||
return;
|
||||
}
|
||||
@@ -30,8 +29,8 @@ public class ExplodingSwordBehavior(PackedScene explosion, float radius) : IAbil
|
||||
return;
|
||||
}
|
||||
explo.Radius = radius;
|
||||
|
||||
owner.GetTree().GetCurrentScene().CallDeferred(Node.MethodName.AddChild, explo);
|
||||
|
||||
owner.GetTree().GetRoot().CallDeferred(Node.MethodName.AddChild, explo);
|
||||
explo.CallDeferred(Node3D.MethodName.SetGlobalPosition, owner.GlobalPosition);
|
||||
|
||||
context.AbilityHandle.CommitAbility();
|
||||
|
||||
@@ -1,20 +1,13 @@
|
||||
using Gamesmiths.Forge.Abilities;
|
||||
using Gamesmiths.Forge.Effects;
|
||||
using Gamesmiths.Forge.Godot.Resources;
|
||||
using Gamesmiths.Forge.Godot.Resources.Abilities;
|
||||
using Godot;
|
||||
|
||||
namespace Movementtests.forge.abilities;
|
||||
|
||||
public class InstantEndBehavior(ForgeEffectData? effectData) : IAbilityBehavior
|
||||
public class InstantEndBehavior : IAbilityBehavior
|
||||
{
|
||||
public void OnStarted(AbilityBehaviorContext context)
|
||||
{
|
||||
if (effectData != null)
|
||||
{
|
||||
var effect = new Effect(effectData.GetEffectData(), new EffectOwnership(context.Owner, context.Owner));
|
||||
context.Owner.EffectsManager.ApplyEffect(effect);
|
||||
}
|
||||
context.AbilityHandle.CommitAbility();
|
||||
context.InstanceHandle.End();
|
||||
}
|
||||
@@ -26,6 +19,5 @@ public class InstantEndBehavior(ForgeEffectData? effectData) : IAbilityBehavior
|
||||
[GlobalClass]
|
||||
public partial class ForgeInstantEndBehavior : ForgeAbilityBehavior
|
||||
{
|
||||
[Export] public ForgeEffectData? OptionalEffectData { get; set; }
|
||||
public override IAbilityBehavior GetBehavior() => new InstantEndBehavior(OptionalEffectData);
|
||||
public override IAbilityBehavior GetBehavior() => new InstantEndBehavior();
|
||||
}
|
||||
@@ -1,38 +0,0 @@
|
||||
using Gamesmiths.Forge.Abilities;
|
||||
using Gamesmiths.Forge.Effects;
|
||||
using Gamesmiths.Forge.Godot.Resources;
|
||||
using Gamesmiths.Forge.Godot.Resources.Abilities;
|
||||
using Godot;
|
||||
|
||||
namespace Movementtests.forge.abilities;
|
||||
|
||||
public class ManualCancelHitBehavior(ForgeEffectData[] effects) : IAbilityBehavior
|
||||
{
|
||||
public void OnStarted(AbilityBehaviorContext context)
|
||||
{
|
||||
if (context.Target == null) return;
|
||||
|
||||
var sourceLocation = (context.Source as Node3D)?.GlobalPosition ?? Vector3.Zero;
|
||||
var targetLocation = (context.Target as Node3D)?.GlobalPosition ?? Vector3.Zero;
|
||||
var magnitude = context.Magnitude == 0 ? 1 : context.Magnitude;
|
||||
|
||||
foreach (var effectData in effects)
|
||||
{
|
||||
var effect = new Effect(effectData.GetEffectData(), new EffectOwnership(context.Owner, context.Owner));
|
||||
context.Target.EffectsManager.ApplyEffect(effect, new SimpleHitEffectData(sourceLocation, targetLocation, magnitude));
|
||||
}
|
||||
}
|
||||
|
||||
public void OnEnded(AbilityBehaviorContext context)
|
||||
{
|
||||
context.AbilityHandle.CommitAbility();
|
||||
}
|
||||
}
|
||||
|
||||
[Tool]
|
||||
[GlobalClass]
|
||||
public partial class ForgeManualCancelHitBehavior : ForgeAbilityBehavior
|
||||
{
|
||||
[Export] public ForgeEffectData[] OnHitEffects { get; set; } = [];
|
||||
public override IAbilityBehavior GetBehavior() => new ManualCancelHitBehavior(OnHitEffects);
|
||||
}
|
||||
@@ -1 +0,0 @@
|
||||
uid://d1bb1fvh1mnpd
|
||||
@@ -1,39 +0,0 @@
|
||||
using Gamesmiths.Forge.Abilities;
|
||||
using Gamesmiths.Forge.Effects;
|
||||
using Gamesmiths.Forge.Godot.Resources;
|
||||
using Gamesmiths.Forge.Godot.Resources.Abilities;
|
||||
using Godot;
|
||||
|
||||
namespace Movementtests.forge.abilities;
|
||||
|
||||
public record SimpleHitEffectData(Vector3 SourceLocation, Vector3 TargetLocation, float Magnitude = 1);
|
||||
|
||||
public class SimpleHitBehavior(ForgeEffectData? damage) : IAbilityBehavior
|
||||
{
|
||||
public void OnStarted(AbilityBehaviorContext context)
|
||||
{
|
||||
if (context.Target == null || damage == null) return;
|
||||
|
||||
var sourceLocation = (context.Source as Node3D)?.GlobalPosition ?? Vector3.Zero;
|
||||
var targetLocation = (context.Target as Node3D)?.GlobalPosition ?? Vector3.Zero;
|
||||
|
||||
var magnitude = context.Magnitude == 0 ? 1 : context.Magnitude;
|
||||
var effect = new Effect(damage.GetEffectData(), new EffectOwnership(context.Owner, context.Owner));
|
||||
context.Target.EffectsManager.ApplyEffect(effect, new SimpleHitEffectData(sourceLocation, targetLocation, magnitude));
|
||||
|
||||
context.AbilityHandle.CommitAbility();
|
||||
context.InstanceHandle.End();
|
||||
}
|
||||
|
||||
public void OnEnded(AbilityBehaviorContext context)
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
[Tool]
|
||||
[GlobalClass]
|
||||
public partial class ForgeSimpleHitBehavior : ForgeAbilityBehavior
|
||||
{
|
||||
[Export] public ForgeEffectData? DamageEffect { get; set; }
|
||||
public override IAbilityBehavior GetBehavior() => new SimpleHitBehavior(DamageEffect);
|
||||
}
|
||||
@@ -1 +0,0 @@
|
||||
uid://n6efm5o4uxvr
|
||||
@@ -1,60 +0,0 @@
|
||||
using Gamesmiths.Forge.Abilities;
|
||||
using Gamesmiths.Forge.Core;
|
||||
using Gamesmiths.Forge.Effects;
|
||||
using Gamesmiths.Forge.Godot.Resources;
|
||||
using Gamesmiths.Forge.Godot.Resources.Abilities;
|
||||
using Godot;
|
||||
using Movementtests.interfaces;
|
||||
using Movementtests.managers;
|
||||
using Movementtests.tools;
|
||||
|
||||
namespace Movementtests.forge.abilities;
|
||||
|
||||
public record OnProjectileSpawned(Vector3 Direction, float SpeedMultiplier, Vector3? SpawnOffset = null, uint? CollisionOverride = null, TokenManager.Token? Token = null);
|
||||
|
||||
public class SpawnProjectileBehavior(PackedScene projectileScene) : IAbilityBehavior<OnProjectileSpawned>
|
||||
{
|
||||
public void OnStarted(AbilityBehaviorContext context, OnProjectileSpawned data)
|
||||
{
|
||||
if (context.Source is not Node3D source || projectileScene.Instantiate() is not Projectile projectile)
|
||||
{
|
||||
context.InstanceHandle.End();
|
||||
return;
|
||||
}
|
||||
|
||||
source.GetTree().GetCurrentScene().AddChild(projectile);
|
||||
|
||||
// Computing projectile properties
|
||||
var offset = data.SpawnOffset ?? Vector3.Zero;
|
||||
var startPos = source is ITargetable targetable ? targetable.GetTargetGlobalPosition() : source.GlobalPosition;
|
||||
var target = context.Target as Node3D;
|
||||
var magnitude = context.Magnitude != 0 ? context.Magnitude : 1;
|
||||
var impulse = data.Direction * data.SpeedMultiplier * magnitude;
|
||||
var collisionOverride = data.CollisionOverride ?? projectile.CollisionMask;
|
||||
|
||||
// Setting up projectile
|
||||
projectile.GlobalPosition = startPos + offset;
|
||||
projectile.Target = target;
|
||||
projectile.ImpulseDirection = impulse;
|
||||
projectile.CollisionMask = collisionOverride;
|
||||
projectile.Token = data.Token;
|
||||
|
||||
if (projectile is ISpawnable spawnable) spawnable.Init();
|
||||
|
||||
context.AbilityHandle.CommitAbility();
|
||||
context.InstanceHandle.End();
|
||||
}
|
||||
|
||||
public void OnEnded(AbilityBehaviorContext context)
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
[Tool]
|
||||
[GlobalClass]
|
||||
public partial class ForgeSpawnProjectileBehavior : ForgeAbilityBehavior
|
||||
{
|
||||
[Export] public required PackedScene Projectile { get; set; }
|
||||
public override IAbilityBehavior GetBehavior() => new SpawnProjectileBehavior(Projectile);
|
||||
}
|
||||
@@ -1 +0,0 @@
|
||||
uid://dxtjifb8hv8k4
|
||||
@@ -1,13 +0,0 @@
|
||||
using Gamesmiths.Forge.Attributes;
|
||||
|
||||
namespace Movementtests.forge.attribute_sets;
|
||||
|
||||
public class CharacterAttributeSet : AttributeSet
|
||||
{
|
||||
public EntityAttribute Health { get; }
|
||||
|
||||
public CharacterAttributeSet()
|
||||
{
|
||||
Health = InitializeAttribute(nameof(Health), 100, 0, 100);
|
||||
}
|
||||
}
|
||||
@@ -1 +0,0 @@
|
||||
uid://cikbxmilitd1m
|
||||
@@ -1,14 +1,15 @@
|
||||
using Gamesmiths.Forge.Attributes;
|
||||
|
||||
namespace Movementtests.scenes.enemies;
|
||||
|
||||
public class EnemyAttributeSet : AttributeSet
|
||||
{
|
||||
public EntityAttribute Health { get; }
|
||||
public EntityAttribute Strength { get; }
|
||||
public EntityAttribute Speed { get; }
|
||||
|
||||
public EnemyAttributeSet()
|
||||
{
|
||||
Health = InitializeAttribute(nameof(Health), 100, 0, 150);
|
||||
Strength = InitializeAttribute(nameof(Strength), 10, 0, 99);
|
||||
Speed = InitializeAttribute(nameof(Speed), 5, 0, 10);
|
||||
}
|
||||
|
||||
@@ -1,14 +0,0 @@
|
||||
using Gamesmiths.Forge.Attributes;
|
||||
namespace Movementtests.scenes.enemies;
|
||||
|
||||
public class MetaAttributeSet : AttributeSet
|
||||
{
|
||||
public EntityAttribute IncomingDamage { get; private set; }
|
||||
public EntityAttribute Level { get; private set; }
|
||||
|
||||
public MetaAttributeSet()
|
||||
{
|
||||
IncomingDamage = InitializeAttribute(nameof(IncomingDamage), 0, 0, 1000, channels: 4);
|
||||
Level = InitializeAttribute(nameof(Level), 1, 1, 1000);
|
||||
}
|
||||
}
|
||||
@@ -1 +0,0 @@
|
||||
uid://d36s5oiy8ls0d
|
||||
@@ -4,10 +4,16 @@ namespace Movementtests.scenes.player_controller.scripts;
|
||||
|
||||
public class PlayerAttributeSet : AttributeSet
|
||||
{
|
||||
public EntityAttribute Health { get; }
|
||||
public EntityAttribute Mana { get; }
|
||||
public EntityAttribute Strength { get; }
|
||||
public EntityAttribute Speed { get; }
|
||||
|
||||
public PlayerAttributeSet()
|
||||
{
|
||||
Health = InitializeAttribute(nameof(Health), 100, 0, 150);
|
||||
Mana = InitializeAttribute(nameof(Mana), 100, 0, 100);
|
||||
Strength = InitializeAttribute(nameof(Strength), 10, 0, 99);
|
||||
Speed = InitializeAttribute(nameof(Speed), 5, 0, 10);
|
||||
}
|
||||
}
|
||||
@@ -1,9 +0,0 @@
|
||||
namespace Movementtests.tools.calculators;
|
||||
|
||||
public enum DamageType
|
||||
{
|
||||
Physical = 0,
|
||||
Magical = 1,
|
||||
Elemental = 2,
|
||||
Explosive = 3,
|
||||
}
|
||||
@@ -1 +0,0 @@
|
||||
uid://bne5gra0fmvsr
|
||||
@@ -1,139 +0,0 @@
|
||||
using System.Collections.Generic;
|
||||
using Gamesmiths.Forge.Attributes;
|
||||
using Gamesmiths.Forge.Core;
|
||||
using Gamesmiths.Forge.Effects;
|
||||
using Gamesmiths.Forge.Effects.Calculator;
|
||||
using Gamesmiths.Forge.Effects.Magnitudes;
|
||||
using Gamesmiths.Forge.Effects.Modifiers;
|
||||
using Gamesmiths.Forge.Events;
|
||||
using Gamesmiths.Forge.Godot.Core;
|
||||
using Gamesmiths.Forge.Godot.Resources;
|
||||
using Gamesmiths.Forge.Godot.Resources.Calculators;
|
||||
using Gamesmiths.Forge.Tags;
|
||||
using Godot;
|
||||
using Movementtests.forge.abilities;
|
||||
|
||||
namespace Movementtests.tools.calculators;
|
||||
|
||||
public record DamageDone(DamageType DamageType, float Damage, float OverkillDamage);
|
||||
|
||||
public class DamageExecution : CustomExecution
|
||||
{
|
||||
private readonly DamageType _damageType;
|
||||
private readonly ForgeTagContainer? _damageDealerEventTags;
|
||||
private readonly ForgeTagContainer? _damageReceiverEventTags;
|
||||
|
||||
// Define attributes to capture and modify
|
||||
public AttributeCaptureDefinition TargetHealth { get; }
|
||||
|
||||
public AttributeCaptureDefinition TargetIncomingDamage { get; }
|
||||
|
||||
public DamageExecution(DamageType damageType, ForgeTagContainer? damageDealerEventTags, ForgeTagContainer? damageReceiverEventTags)
|
||||
{
|
||||
|
||||
// Capture target mana and magic resistance
|
||||
TargetHealth = new AttributeCaptureDefinition(
|
||||
"CharacterAttributeSet.Health",
|
||||
AttributeCaptureSource.Target,
|
||||
false);
|
||||
|
||||
TargetIncomingDamage = new AttributeCaptureDefinition(
|
||||
"MetaAttributeSet.IncomingDamage",
|
||||
AttributeCaptureSource.Target);
|
||||
|
||||
// Register attributes for capture
|
||||
AttributesToCapture.Add(TargetHealth);
|
||||
AttributesToCapture.Add(TargetIncomingDamage);
|
||||
|
||||
_damageType = damageType;
|
||||
_damageDealerEventTags = damageDealerEventTags;
|
||||
_damageReceiverEventTags = damageReceiverEventTags;
|
||||
}
|
||||
|
||||
public override ModifierEvaluatedData[] EvaluateExecution(
|
||||
Effect effect, IForgeEntity target, EffectEvaluatedData? effectEvaluatedData)
|
||||
{
|
||||
var results = new List<ModifierEvaluatedData>();
|
||||
|
||||
float targetIncomingDamage = CaptureAttributeMagnitude(
|
||||
TargetIncomingDamage,
|
||||
effect,
|
||||
target,
|
||||
effectEvaluatedData);
|
||||
|
||||
GD.Print(targetIncomingDamage);
|
||||
|
||||
if (targetIncomingDamage <= 0)
|
||||
{
|
||||
return [.. results];
|
||||
}
|
||||
|
||||
if (effectEvaluatedData?.TryGetContextData(out SimpleHitEffectData? hitEffectData) == true)
|
||||
{
|
||||
targetIncomingDamage *= hitEffectData.Magnitude;
|
||||
}
|
||||
|
||||
|
||||
// Apply health reduction to target if attribute exists
|
||||
if (TargetHealth.TryGetAttribute(target, out EntityAttribute? targetHealthAttribute))
|
||||
{
|
||||
results.Add(new ModifierEvaluatedData(
|
||||
targetHealthAttribute,
|
||||
ModifierOperation.FlatBonus,
|
||||
-targetIncomingDamage)); // Negative for damage
|
||||
}
|
||||
|
||||
var finalDamage = targetIncomingDamage;
|
||||
var overkillDamage = 0.0f;
|
||||
if (targetHealthAttribute!.CurrentValue - targetIncomingDamage <= targetHealthAttribute.Min)
|
||||
{
|
||||
finalDamage = targetHealthAttribute.CurrentValue - targetHealthAttribute.Min;
|
||||
overkillDamage = targetIncomingDamage - finalDamage;
|
||||
}
|
||||
|
||||
if (_damageReceiverEventTags is null) return [.. results];
|
||||
|
||||
target.Events.Raise(new EventData<DamageDone>
|
||||
{
|
||||
EventTags = _damageReceiverEventTags.GetTagContainer(),
|
||||
Source = effect.Ownership.Owner,
|
||||
Target = target,
|
||||
EventMagnitude = finalDamage,
|
||||
Payload = new DamageDone(_damageType, finalDamage, overkillDamage)
|
||||
});
|
||||
|
||||
if (effect.Ownership.Source is null || _damageDealerEventTags is null)
|
||||
{
|
||||
return [.. results];
|
||||
}
|
||||
|
||||
effect.Ownership.Source.Events.Raise(new EventData<DamageDone>
|
||||
{
|
||||
EventTags = _damageDealerEventTags.GetTagContainer(),
|
||||
Source = effect.Ownership.Owner,
|
||||
Target = target,
|
||||
EventMagnitude = finalDamage,
|
||||
Payload = new DamageDone(_damageType, finalDamage, overkillDamage)
|
||||
});
|
||||
|
||||
return [.. results];
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
[Tool]
|
||||
[GlobalClass]
|
||||
public partial class ForgeDamageExecution : ForgeCustomExecution
|
||||
{
|
||||
[Export]
|
||||
public DamageType DamageType { get; set; } = DamageType.Physical;
|
||||
[Export]
|
||||
public ForgeTagContainer? DamageDealerEventTags { get; set; }
|
||||
[Export]
|
||||
public ForgeTagContainer? DamageReceiverEventTags { get; set; }
|
||||
|
||||
public override CustomExecution GetExecutionClass()
|
||||
{
|
||||
return new DamageExecution(DamageType, DamageDealerEventTags, DamageReceiverEventTags);
|
||||
}
|
||||
}
|
||||
@@ -1 +0,0 @@
|
||||
uid://cfx62w40nd84v
|
||||
@@ -1,105 +0,0 @@
|
||||
using System.Collections.Generic;
|
||||
using Gamesmiths.Forge.Core;
|
||||
using Gamesmiths.Forge.Effects;
|
||||
using Gamesmiths.Forge.Effects.Calculator;
|
||||
using Gamesmiths.Forge.Effects.Magnitudes;
|
||||
using Gamesmiths.Forge.Events;
|
||||
using Gamesmiths.Forge.Godot.Resources;
|
||||
using Gamesmiths.Forge.Godot.Resources.Calculators;
|
||||
using Godot;
|
||||
using Movementtests.forge.abilities;
|
||||
using Movementtests.scenes.components.knockback;
|
||||
|
||||
namespace Movementtests.tools.calculators;
|
||||
|
||||
|
||||
public record KnockbackDone(float KnockbackValue, Vector3 knockbackDirection);
|
||||
|
||||
public class KnockbackExecution : CustomExecution
|
||||
{
|
||||
private readonly RKnockback _knockback;
|
||||
private readonly ForgeTag _knockbackableTag;
|
||||
private readonly ForgeTag _knockbackImmuneTag;
|
||||
private readonly ForgeTagContainer? _knockbackReceiverEventTags;
|
||||
private readonly ForgeTagContainer? _knockbackDealerEventTags;
|
||||
|
||||
public AttributeCaptureDefinition TargetIncomingDamage { get; }
|
||||
|
||||
public KnockbackExecution(ForgeTag knockbackableTag, ForgeTag knockbackImmuneTag, RKnockback knockback, ForgeTagContainer? knockbackDealerEventTags, ForgeTagContainer? knockbackReceiverEventTags)
|
||||
{
|
||||
_knockback = knockback;
|
||||
_knockbackableTag = knockbackableTag;
|
||||
_knockbackImmuneTag = knockbackImmuneTag;
|
||||
_knockbackDealerEventTags = knockbackDealerEventTags;
|
||||
_knockbackReceiverEventTags = knockbackReceiverEventTags;
|
||||
|
||||
TargetIncomingDamage = new AttributeCaptureDefinition(
|
||||
"MetaAttributeSet.IncomingDamage",
|
||||
AttributeCaptureSource.Target);
|
||||
AttributesToCapture.Add(TargetIncomingDamage);
|
||||
}
|
||||
|
||||
public override ModifierEvaluatedData[] EvaluateExecution(Effect effect, IForgeEntity target, EffectEvaluatedData? effectEvaluatedData)
|
||||
{
|
||||
var results = new List<ModifierEvaluatedData>();
|
||||
if (!target.Tags.CombinedTags.HasTag(_knockbackableTag.GetTag()) || target.Tags.CombinedTags.HasTag(_knockbackImmuneTag.GetTag()))
|
||||
return [.. results];
|
||||
|
||||
float targetIncomingDamage = CaptureAttributeMagnitude(
|
||||
TargetIncomingDamage,
|
||||
effect,
|
||||
target,
|
||||
effectEvaluatedData);
|
||||
|
||||
if (targetIncomingDamage <= 0)
|
||||
return [.. results];
|
||||
|
||||
var knockbackValue = _knockback.Modifier * targetIncomingDamage / 100.0f;
|
||||
|
||||
if (_knockbackReceiverEventTags is null)
|
||||
return [.. results];
|
||||
|
||||
var knockbackDirection = Vector3.Zero;
|
||||
if (effectEvaluatedData?.TryGetContextData(out SimpleHitEffectData? hitEffectData) == true)
|
||||
{
|
||||
knockbackDirection = hitEffectData.SourceLocation.DirectionTo(hitEffectData.TargetLocation);
|
||||
}
|
||||
target.Events.Raise(new EventData<KnockbackDone>
|
||||
{
|
||||
EventTags = _knockbackReceiverEventTags.GetTagContainer(),
|
||||
Source = effect.Ownership.Owner,
|
||||
Target = target,
|
||||
EventMagnitude = knockbackValue,
|
||||
Payload = new KnockbackDone(knockbackValue, knockbackDirection)
|
||||
});
|
||||
|
||||
if (effect.Ownership.Source is null || _knockbackDealerEventTags is null)
|
||||
return [.. results];
|
||||
|
||||
effect.Ownership.Source.Events.Raise(new EventData<KnockbackDone>
|
||||
{
|
||||
EventTags = _knockbackDealerEventTags.GetTagContainer(),
|
||||
Source = effect.Ownership.Owner,
|
||||
Target = target,
|
||||
EventMagnitude = knockbackValue,
|
||||
Payload = new KnockbackDone(knockbackValue, knockbackDirection)
|
||||
});
|
||||
|
||||
return [.. results];
|
||||
}
|
||||
}
|
||||
|
||||
[GlobalClass]
|
||||
public partial class ForgeKnockbackExecution : ForgeCustomExecution
|
||||
{
|
||||
[Export] public ForgeTag? KnockbackableTag { get; set; }
|
||||
[Export] public ForgeTag? KnockbackImmuneTag { get; set; }
|
||||
[Export] public RKnockback? Knockback { get; set; }
|
||||
[Export] public ForgeTagContainer? KnockbackDealerEventTags { get; set; }
|
||||
[Export] public ForgeTagContainer? KnockbackReceiverEventTags { get; set; }
|
||||
public override CustomExecution GetExecutionClass()
|
||||
{
|
||||
if (Knockback == null || KnockbackableTag == null || KnockbackImmuneTag == null) throw new System.ArgumentException("Knockback or KnockbackableTag is null");
|
||||
return new KnockbackExecution(KnockbackableTag, KnockbackImmuneTag, Knockback, KnockbackDealerEventTags, KnockbackReceiverEventTags);
|
||||
}
|
||||
}
|
||||
@@ -1 +0,0 @@
|
||||
uid://diondfg5xp78h
|
||||
@@ -16,33 +16,19 @@ using Movementtests.systems;
|
||||
namespace Movementtests.tools.calculators;
|
||||
|
||||
|
||||
public class RaiseEventTagExecution(TagContainer? ownerEventTags, TagContainer? targetEventTags) : CustomExecution
|
||||
public class RaiseEventTagExecution(TagContainer eventTags) : CustomExecution
|
||||
{
|
||||
public override ModifierEvaluatedData[] EvaluateExecution(Effect effect, IForgeEntity target, EffectEvaluatedData? effectEvaluatedData)
|
||||
{
|
||||
var owner = effect.Ownership.Owner;
|
||||
var magnitude = effectEvaluatedData is { ModifiersEvaluatedData.Length: > 0 }
|
||||
? effectEvaluatedData.ModifiersEvaluatedData[0].Magnitude
|
||||
: 0f;
|
||||
if (owner != null && ownerEventTags != null)
|
||||
if (owner == null) return [];
|
||||
|
||||
owner.Events.Raise(new EventData
|
||||
{
|
||||
owner.Events.Raise(new EventData
|
||||
{
|
||||
EventTags = ownerEventTags,
|
||||
Source = owner,
|
||||
EventMagnitude = magnitude
|
||||
});
|
||||
}
|
||||
|
||||
if (targetEventTags != null)
|
||||
{
|
||||
target.Events.Raise(new EventData
|
||||
{
|
||||
EventTags = targetEventTags,
|
||||
Source = owner,
|
||||
EventMagnitude = magnitude
|
||||
});
|
||||
}
|
||||
EventTags = eventTags,
|
||||
Source = owner,
|
||||
EventMagnitude = 12f
|
||||
});
|
||||
|
||||
return [];
|
||||
}
|
||||
@@ -53,11 +39,10 @@ public class RaiseEventTagExecution(TagContainer? ownerEventTags, TagContainer?
|
||||
[GlobalClass]
|
||||
public partial class ForgeRaiseEventTagExecution : ForgeCustomExecution
|
||||
{
|
||||
[Export] ForgeTagContainer? EventTags { get; set; }
|
||||
[Export] ForgeTagContainer? TargetEventTags { get; set; }
|
||||
[Export] ForgeTagContainer EventTags { get; set; }
|
||||
|
||||
public override CustomExecution GetExecutionClass()
|
||||
{
|
||||
return new RaiseEventTagExecution(EventTags?.GetTagContainer(), TargetEventTags?.GetTagContainer());
|
||||
return new RaiseEventTagExecution(EventTags.GetTagContainer());
|
||||
}
|
||||
}
|
||||
@@ -4,4 +4,4 @@
|
||||
|
||||
[resource]
|
||||
script = ExtResource("1_l686n")
|
||||
RegisteredTags = Array[String](["character.player", "character.enemy", "status.stunned", "status.burning", "status.frozen", "abilities.weapon.land", "abilities.weapon.flying", "abilities.weapon.left", "events.combat.damage", "events.combat.hit", "events.weapon.flyingTick", "events.weapon.startedFlying", "events.weapon.stoppedFlying", "events.weapon.handToFlying", "events.weapon.flyingToHand", "events.weapon.plantedToHand", "events.weapon.plantedToFlying", "events.weapon.planted", "cooldown.empoweredAction", "cooldown.empoweredSwordThrow", "cues.resources.mana", "events.player.empowered_action_used", "cues.resources.mana.inhibited", "cues.resources.health", "cooldown.enemy.hit", "events.combat.death", "cooldown.hit", "events.player.hit", "cues.enemy.health", "immunity.damage", "status", "traits.damageable", "traits.knockbackable", "events.combat.knockback_dealt", "events.combat.knockback_received", "events.weapon.plantedtick", "events.weapon.unplanted", "abilities.weapon.planted", "events.enemy.try_hit", "events.enemy.launch_projectile", "objects.projectile", "objects.weapon", "events.enemy.request_projectile", "events.player.parry", "traits.stunnable", "immunity.knockback", "immunity.stun", "events.combat.stun_applied", "events.combat.stun_received"])
|
||||
RegisteredTags = Array[String](["character.player", "character.enemy", "weapon", "status.stunned", "status.burning", "status.frozen", "abilities.weapon.land", "abilities.weapon.flying", "abilities.weapon.left", "events.combat.damage", "events.combat.hit", "events.weapon.flyingTick", "events.weapon.startedFlying", "events.weapon.stoppedFlying", "events.weapon.handToFlying", "events.weapon.flyingToHand", "events.weapon.plantedToHand", "events.weapon.plantedToFlying", "events.weapon.planted", "cooldown.empoweredAction", "cooldown.empoweredSwordThrow", "cues.resources.mana", "events.player.empowered_action_used", "cues.resources.mana.inhibited"])
|
||||
|
||||
@@ -1,114 +0,0 @@
|
||||
[gd_resource type="Resource" script_class="ForgeAbilityData" format=3 uid="uid://nns16d5uhtl8"]
|
||||
|
||||
[ext_resource type="Resource" uid="uid://bpovqvlqv5bs5" path="res://forge/resources/effect_components/damageable.tres" id="1_w36j6"]
|
||||
[ext_resource type="Resource" uid="uid://sn6kndc6ukic" path="res://forge/resources/tag_containers/on_damage_dealt.tres" id="2_3ma4g"]
|
||||
[ext_resource type="Resource" uid="uid://5tr54q0rdpho" path="res://forge/resources/tag_containers/on_damage_taken.tres" id="3_kyfqu"]
|
||||
[ext_resource type="Script" uid="uid://cfx62w40nd84v" path="res://forge/calculators/ForgeDamageExecution.cs" id="4_xfamx"]
|
||||
[ext_resource type="Script" uid="uid://b44cse62qru7j" path="res://scenes/components/knockback/RKnockback.cs" id="5_tw4gc"]
|
||||
[ext_resource type="Resource" uid="uid://bhn27s8ne0uyg" path="res://forge/resources/tag_containers/on_knockback_dealt.tres" id="6_nq3a0"]
|
||||
[ext_resource type="Resource" uid="uid://5obdxlcpw8qt" path="res://forge/resources/tag_containers/knockback_immune.tres" id="7_3ma4g"]
|
||||
[ext_resource type="Resource" uid="uid://bkr6uu57wm3o3" path="res://forge/resources/tag_containers/on_knockback_received.tres" id="7_3utx7"]
|
||||
[ext_resource type="Resource" uid="uid://45l7vnfs72b" path="res://forge/resources/tag_containers/knockbackable_tag.tres" id="8_7hfxb"]
|
||||
[ext_resource type="Script" uid="uid://diondfg5xp78h" path="res://forge/calculators/ForgeKnockbackExecution.cs" id="9_lysxe"]
|
||||
[ext_resource type="Script" uid="uid://1hgogislo1l6" path="res://addons/forge/resources/magnitudes/ForgeScalableInt.cs" id="10_sd7ih"]
|
||||
[ext_resource type="Script" uid="uid://cn3b4ya15fg7e" path="res://addons/forge/resources/magnitudes/ForgeScalableFloat.cs" id="11_bs6rs"]
|
||||
[ext_resource type="Script" uid="uid://bdfcavbjyhxxa" path="res://addons/forge/resources/ForgeModifier.cs" id="12_a6jts"]
|
||||
[ext_resource type="Script" uid="uid://b83hf13nj37k3" path="res://addons/forge/resources/ForgeEffectData.cs" id="13_c85am"]
|
||||
[ext_resource type="Texture2D" uid="uid://c2akxlg7tdb67" path="res://assets/ui/IconGodotNode/node/icon_projectile.png" id="14_ow2i8"]
|
||||
[ext_resource type="Script" uid="uid://n6efm5o4uxvr" path="res://forge/abilities/ForgeSimpleHitBehavior.cs" id="15_ki7ct"]
|
||||
[ext_resource type="Script" uid="uid://dhxfbxh54pyxp" path="res://addons/forge/resources/abilities/ForgeAbilityData.cs" id="16_hhyju"]
|
||||
|
||||
[sub_resource type="Resource" id="Resource_vy8wr"]
|
||||
script = ExtResource("4_xfamx")
|
||||
DamageType = 3
|
||||
DamageDealerEventTags = ExtResource("2_3ma4g")
|
||||
DamageReceiverEventTags = ExtResource("3_kyfqu")
|
||||
metadata/_custom_type_script = "uid://cfx62w40nd84v"
|
||||
|
||||
[sub_resource type="Resource" id="Resource_ndb8p"]
|
||||
script = ExtResource("5_tw4gc")
|
||||
Modifier = 500.0
|
||||
metadata/_custom_type_script = "uid://b44cse62qru7j"
|
||||
|
||||
[sub_resource type="Resource" id="Resource_dy671"]
|
||||
script = ExtResource("9_lysxe")
|
||||
KnockbackableTag = ExtResource("8_7hfxb")
|
||||
KnockbackImmuneTag = ExtResource("7_3ma4g")
|
||||
Knockback = SubResource("Resource_ndb8p")
|
||||
KnockbackDealerEventTags = ExtResource("6_nq3a0")
|
||||
KnockbackReceiverEventTags = ExtResource("7_3utx7")
|
||||
metadata/_custom_type_script = "uid://diondfg5xp78h"
|
||||
|
||||
[sub_resource type="Resource" id="Resource_i0sj3"]
|
||||
script = ExtResource("10_sd7ih")
|
||||
BaseValue = 1
|
||||
|
||||
[sub_resource type="Resource" id="Resource_1mvp7"]
|
||||
script = ExtResource("11_bs6rs")
|
||||
BaseValue = 1.0
|
||||
|
||||
[sub_resource type="Resource" id="Resource_jxdlf"]
|
||||
script = ExtResource("11_bs6rs")
|
||||
|
||||
[sub_resource type="Resource" id="Resource_rslib"]
|
||||
script = ExtResource("11_bs6rs")
|
||||
|
||||
[sub_resource type="Resource" id="Resource_3l3du"]
|
||||
script = ExtResource("11_bs6rs")
|
||||
BaseValue = 1.0
|
||||
|
||||
[sub_resource type="Resource" id="Resource_qqpg8"]
|
||||
script = ExtResource("11_bs6rs")
|
||||
|
||||
[sub_resource type="Resource" id="Resource_igmn0"]
|
||||
script = ExtResource("11_bs6rs")
|
||||
|
||||
[sub_resource type="Resource" id="Resource_acqnn"]
|
||||
script = ExtResource("11_bs6rs")
|
||||
BaseValue = 50.0
|
||||
metadata/_custom_type_script = "uid://cn3b4ya15fg7e"
|
||||
|
||||
[sub_resource type="Resource" id="Resource_xwtie"]
|
||||
script = ExtResource("12_a6jts")
|
||||
Attribute = "MetaAttributeSet.IncomingDamage"
|
||||
Operation = 2
|
||||
CalculationType = 1
|
||||
ScalableFloat = SubResource("Resource_acqnn")
|
||||
CapturedAttribute = "MetaAttributeSet.Level"
|
||||
Coefficient = SubResource("Resource_3l3du")
|
||||
PreMultiplyAdditiveValue = SubResource("Resource_igmn0")
|
||||
PostMultiplyAdditiveValue = SubResource("Resource_qqpg8")
|
||||
CalculatorCoefficient = SubResource("Resource_1mvp7")
|
||||
CalculatorPreMultiplyAdditiveValue = SubResource("Resource_rslib")
|
||||
CalculatorPostMultiplyAdditiveValue = SubResource("Resource_jxdlf")
|
||||
metadata/_custom_type_script = "uid://bdfcavbjyhxxa"
|
||||
|
||||
[sub_resource type="Resource" id="Resource_ikb7l"]
|
||||
script = ExtResource("10_sd7ih")
|
||||
BaseValue = 1
|
||||
|
||||
[sub_resource type="Resource" id="Resource_jdvg8"]
|
||||
script = ExtResource("13_c85am")
|
||||
Name = "Explosion hit"
|
||||
Modifiers = Array[Object]([SubResource("Resource_xwtie")])
|
||||
Components = [ExtResource("1_w36j6")]
|
||||
Executions = Array[Object]([SubResource("Resource_vy8wr"), SubResource("Resource_dy671")])
|
||||
StackLimit = SubResource("Resource_ikb7l")
|
||||
InitialStack = SubResource("Resource_i0sj3")
|
||||
Cues = []
|
||||
metadata/_custom_type_script = "uid://b83hf13nj37k3"
|
||||
|
||||
[sub_resource type="Resource" id="Resource_ba5lh"]
|
||||
script = ExtResource("15_ki7ct")
|
||||
DamageEffect = SubResource("Resource_jdvg8")
|
||||
Name = "Explostion hit"
|
||||
Description = "Called by explosion scene"
|
||||
Icon = ExtResource("14_ow2i8")
|
||||
metadata/_custom_type_script = "uid://n6efm5o4uxvr"
|
||||
|
||||
[resource]
|
||||
script = ExtResource("16_hhyju")
|
||||
Name = "Explosion "
|
||||
CooldownEffects = []
|
||||
AbilityBehavior = SubResource("Resource_ba5lh")
|
||||
metadata/_custom_type_script = "uid://dhxfbxh54pyxp"
|
||||
@@ -1,161 +0,0 @@
|
||||
[gd_resource type="Resource" script_class="ForgeAbilityData" format=3 uid="uid://qpdw62ubaclc"]
|
||||
|
||||
[ext_resource type="Resource" uid="uid://bpovqvlqv5bs5" path="res://forge/resources/effect_components/damageable.tres" id="1_q2jt5"]
|
||||
[ext_resource type="Resource" uid="uid://dlu7l5egpexnn" path="res://forge/resources/custom_executions/raise_damage_dealing_events.tres" id="2_2dxcu"]
|
||||
[ext_resource type="Resource" uid="uid://4rkwr10pc6tp" path="res://forge/resources/custom_executions/physical_damage_calculator.tres" id="2_f6jpb"]
|
||||
[ext_resource type="Script" uid="uid://cw525n4mjqgw0" path="res://addons/forge/resources/ForgeTagContainer.cs" id="4_0mce3"]
|
||||
[ext_resource type="Script" uid="uid://1hgogislo1l6" path="res://addons/forge/resources/magnitudes/ForgeScalableInt.cs" id="6_41lep"]
|
||||
[ext_resource type="Script" uid="uid://cn3b4ya15fg7e" path="res://addons/forge/resources/magnitudes/ForgeScalableFloat.cs" id="7_jf6ii"]
|
||||
[ext_resource type="Script" uid="uid://bdfcavbjyhxxa" path="res://addons/forge/resources/ForgeModifier.cs" id="8_51ikp"]
|
||||
[ext_resource type="Script" uid="uid://b83hf13nj37k3" path="res://addons/forge/resources/ForgeEffectData.cs" id="9_bcnlx"]
|
||||
[ext_resource type="Script" uid="uid://n6efm5o4uxvr" path="res://forge/abilities/ForgeSimpleHitBehavior.cs" id="10_m4f1m"]
|
||||
[ext_resource type="Script" uid="uid://dngf30hxy5go4" path="res://addons/forge/resources/components/ModifierTags.cs" id="11_8c5sq"]
|
||||
[ext_resource type="Script" uid="uid://2gm1hdhi8u08" path="res://addons/forge/resources/magnitudes/ForgeModifierMagnitude.cs" id="12_2x5q6"]
|
||||
[ext_resource type="Resource" uid="uid://csh8jcxtrs11k" path="res://forge/resources/tag_containers/on_enemy_try_hit.tres" id="12_f6jpb"]
|
||||
[ext_resource type="Script" uid="uid://dhxfbxh54pyxp" path="res://addons/forge/resources/abilities/ForgeAbilityData.cs" id="13_4nn3y"]
|
||||
|
||||
[sub_resource type="Resource" id="Resource_rjo6h"]
|
||||
script = ExtResource("6_41lep")
|
||||
BaseValue = 1
|
||||
|
||||
[sub_resource type="Resource" id="Resource_8qlid"]
|
||||
script = ExtResource("7_jf6ii")
|
||||
BaseValue = 1.0
|
||||
|
||||
[sub_resource type="Resource" id="Resource_lbthk"]
|
||||
script = ExtResource("7_jf6ii")
|
||||
|
||||
[sub_resource type="Resource" id="Resource_hguc3"]
|
||||
script = ExtResource("7_jf6ii")
|
||||
|
||||
[sub_resource type="Resource" id="Resource_ugrvo"]
|
||||
script = ExtResource("7_jf6ii")
|
||||
BaseValue = 1.0
|
||||
|
||||
[sub_resource type="Resource" id="Resource_6406e"]
|
||||
script = ExtResource("7_jf6ii")
|
||||
|
||||
[sub_resource type="Resource" id="Resource_x0rol"]
|
||||
script = ExtResource("7_jf6ii")
|
||||
|
||||
[sub_resource type="Resource" id="Resource_1s1j3"]
|
||||
script = ExtResource("7_jf6ii")
|
||||
BaseValue = 10.0
|
||||
metadata/_custom_type_script = "uid://cn3b4ya15fg7e"
|
||||
|
||||
[sub_resource type="Resource" id="Resource_khx4r"]
|
||||
script = ExtResource("8_51ikp")
|
||||
Attribute = "MetaAttributeSet.IncomingDamage"
|
||||
Operation = 2
|
||||
ScalableFloat = SubResource("Resource_1s1j3")
|
||||
Coefficient = SubResource("Resource_ugrvo")
|
||||
PreMultiplyAdditiveValue = SubResource("Resource_x0rol")
|
||||
PostMultiplyAdditiveValue = SubResource("Resource_6406e")
|
||||
CalculatorCoefficient = SubResource("Resource_8qlid")
|
||||
CalculatorPreMultiplyAdditiveValue = SubResource("Resource_hguc3")
|
||||
CalculatorPostMultiplyAdditiveValue = SubResource("Resource_lbthk")
|
||||
metadata/_custom_type_script = "uid://bdfcavbjyhxxa"
|
||||
|
||||
[sub_resource type="Resource" id="Resource_xmw7i"]
|
||||
script = ExtResource("6_41lep")
|
||||
BaseValue = 1
|
||||
|
||||
[sub_resource type="Resource" id="Resource_lj45k"]
|
||||
script = ExtResource("9_bcnlx")
|
||||
Name = "SimpleHitEffect"
|
||||
Modifiers = Array[Object]([SubResource("Resource_khx4r")])
|
||||
Components = [ExtResource("1_q2jt5")]
|
||||
Executions = [ExtResource("2_f6jpb"), ExtResource("2_2dxcu")]
|
||||
StackLimit = SubResource("Resource_xmw7i")
|
||||
InitialStack = SubResource("Resource_rjo6h")
|
||||
Cues = []
|
||||
metadata/_custom_type_script = "uid://b83hf13nj37k3"
|
||||
|
||||
[sub_resource type="Resource" id="Resource_m0osh"]
|
||||
script = ExtResource("10_m4f1m")
|
||||
DamageEffect = SubResource("Resource_lj45k")
|
||||
Name = "Simple hit"
|
||||
Description = "This is a simple hit from an enemy"
|
||||
metadata/_custom_type_script = "uid://n6efm5o4uxvr"
|
||||
|
||||
[sub_resource type="Resource" id="Resource_msmv1"]
|
||||
script = ExtResource("4_0mce3")
|
||||
ContainerTags = Array[String](["status.stunned"])
|
||||
metadata/_custom_type_script = "uid://cw525n4mjqgw0"
|
||||
|
||||
[sub_resource type="Resource" id="Resource_xdbds"]
|
||||
script = ExtResource("4_0mce3")
|
||||
ContainerTags = Array[String](["cooldown.enemy.hit"])
|
||||
metadata/_custom_type_script = "uid://cw525n4mjqgw0"
|
||||
|
||||
[sub_resource type="Resource" id="Resource_gna8g"]
|
||||
script = ExtResource("11_8c5sq")
|
||||
TagsToAdd = SubResource("Resource_xdbds")
|
||||
metadata/_custom_type_script = "uid://dngf30hxy5go4"
|
||||
|
||||
[sub_resource type="Resource" id="Resource_oo2a1"]
|
||||
script = ExtResource("7_jf6ii")
|
||||
BaseValue = 1.0
|
||||
|
||||
[sub_resource type="Resource" id="Resource_q86ag"]
|
||||
script = ExtResource("7_jf6ii")
|
||||
|
||||
[sub_resource type="Resource" id="Resource_5eesh"]
|
||||
script = ExtResource("7_jf6ii")
|
||||
|
||||
[sub_resource type="Resource" id="Resource_5lf6m"]
|
||||
script = ExtResource("7_jf6ii")
|
||||
BaseValue = 1.0
|
||||
|
||||
[sub_resource type="Resource" id="Resource_bv3hg"]
|
||||
script = ExtResource("7_jf6ii")
|
||||
|
||||
[sub_resource type="Resource" id="Resource_tb7hu"]
|
||||
script = ExtResource("7_jf6ii")
|
||||
|
||||
[sub_resource type="Resource" id="Resource_bw6ul"]
|
||||
script = ExtResource("7_jf6ii")
|
||||
BaseValue = 1.0
|
||||
metadata/_custom_type_script = "uid://cn3b4ya15fg7e"
|
||||
|
||||
[sub_resource type="Resource" id="Resource_g5uhf"]
|
||||
script = ExtResource("12_2x5q6")
|
||||
ScalableFloat = SubResource("Resource_bw6ul")
|
||||
Coefficient = SubResource("Resource_5lf6m")
|
||||
PreMultiplyAdditiveValue = SubResource("Resource_tb7hu")
|
||||
PostMultiplyAdditiveValue = SubResource("Resource_bv3hg")
|
||||
CalculatorCoefficient = SubResource("Resource_oo2a1")
|
||||
CalculatorPreMultiplyAdditiveValue = SubResource("Resource_5eesh")
|
||||
CalculatorPostMultiplyAdditiveValue = SubResource("Resource_q86ag")
|
||||
metadata/_custom_type_script = "uid://2gm1hdhi8u08"
|
||||
|
||||
[sub_resource type="Resource" id="Resource_vl5ta"]
|
||||
script = ExtResource("6_41lep")
|
||||
BaseValue = 1
|
||||
|
||||
[sub_resource type="Resource" id="Resource_82a7m"]
|
||||
script = ExtResource("6_41lep")
|
||||
BaseValue = 1
|
||||
|
||||
[sub_resource type="Resource" id="Resource_0gdnn"]
|
||||
script = ExtResource("9_bcnlx")
|
||||
Name = "HitCooldown"
|
||||
Modifiers = []
|
||||
Components = [SubResource("Resource_gna8g")]
|
||||
Executions = []
|
||||
DurationType = 2
|
||||
Duration = SubResource("Resource_g5uhf")
|
||||
StackLimit = SubResource("Resource_82a7m")
|
||||
InitialStack = SubResource("Resource_vl5ta")
|
||||
Cues = []
|
||||
metadata/_custom_type_script = "uid://b83hf13nj37k3"
|
||||
|
||||
[resource]
|
||||
script = ExtResource("13_4nn3y")
|
||||
Name = "Hit"
|
||||
CooldownEffects = [SubResource("Resource_0gdnn")]
|
||||
AbilityBehavior = SubResource("Resource_m0osh")
|
||||
TriggerSource = 1
|
||||
TriggerTag = ExtResource("12_f6jpb")
|
||||
ActivationBlockedTags = SubResource("Resource_msmv1")
|
||||
metadata/_custom_type_script = "uid://dhxfbxh54pyxp"
|
||||
@@ -1,23 +0,0 @@
|
||||
[gd_resource type="Resource" script_class="ForgeAbilityData" format=3 uid="uid://ckfbi6lu255ep"]
|
||||
|
||||
[ext_resource type="Texture2D" uid="uid://g0u88alm6hcb" path="res://assets/ui/IconGodotNode/node/icon_bullet.png" id="1_hixal"]
|
||||
[ext_resource type="PackedScene" uid="uid://bhp6qunnwhncf" path="res://scenes/projectile/Projectile.tscn" id="2_ljwqp"]
|
||||
[ext_resource type="Script" uid="uid://dxtjifb8hv8k4" path="res://forge/abilities/ForgeSpawnProjectileBehavior.cs" id="3_urund"]
|
||||
[ext_resource type="Resource" uid="uid://bkr1xfokymvp4" path="res://forge/resources/tag_containers/on_enemy_lauch_project.tres" id="4_5yymv"]
|
||||
[ext_resource type="Script" uid="uid://dhxfbxh54pyxp" path="res://addons/forge/resources/abilities/ForgeAbilityData.cs" id="5_xbj7n"]
|
||||
|
||||
[sub_resource type="Resource" id="Resource_idpl5"]
|
||||
script = ExtResource("3_urund")
|
||||
Projectile = ExtResource("2_ljwqp")
|
||||
Name = "Spawn projectile"
|
||||
Icon = ExtResource("1_hixal")
|
||||
metadata/_custom_type_script = "uid://dxtjifb8hv8k4"
|
||||
|
||||
[resource]
|
||||
script = ExtResource("5_xbj7n")
|
||||
Name = "Launch projectile"
|
||||
CooldownEffects = []
|
||||
AbilityBehavior = SubResource("Resource_idpl5")
|
||||
TriggerSource = 1
|
||||
TriggerTag = ExtResource("4_5yymv")
|
||||
metadata/_custom_type_script = "uid://dhxfbxh54pyxp"
|
||||
@@ -1,95 +0,0 @@
|
||||
[gd_resource type="Resource" script_class="ForgeAbilityData" format=3 uid="uid://b0ikxp5j8fn3n"]
|
||||
|
||||
[ext_resource type="Resource" uid="uid://cw2ytd34jsxj" path="res://forge/resources/tag_containers/immune_damage.tres" id="1_xjqwu"]
|
||||
[ext_resource type="Script" uid="uid://dngf30hxy5go4" path="res://addons/forge/resources/components/ModifierTags.cs" id="2_a16tf"]
|
||||
[ext_resource type="Script" uid="uid://cn3b4ya15fg7e" path="res://addons/forge/resources/magnitudes/ForgeScalableFloat.cs" id="3_1wliv"]
|
||||
[ext_resource type="Script" uid="uid://2gm1hdhi8u08" path="res://addons/forge/resources/magnitudes/ForgeModifierMagnitude.cs" id="4_7dtdc"]
|
||||
[ext_resource type="Script" uid="uid://1hgogislo1l6" path="res://addons/forge/resources/magnitudes/ForgeScalableInt.cs" id="5_ewbg3"]
|
||||
[ext_resource type="Script" uid="uid://b83hf13nj37k3" path="res://addons/forge/resources/ForgeEffectData.cs" id="6_0akms"]
|
||||
[ext_resource type="Script" uid="uid://cl5hudinl1rex" path="res://forge/abilities/ForgeEffectApplicationBehavior.cs" id="7_mhqpo"]
|
||||
[ext_resource type="Script" uid="uid://dpakv7agvir6y" path="res://addons/forge/resources/ForgeTag.cs" id="8_4vjp3"]
|
||||
[ext_resource type="Script" uid="uid://dhxfbxh54pyxp" path="res://addons/forge/resources/abilities/ForgeAbilityData.cs" id="9_go27d"]
|
||||
|
||||
[sub_resource type="Resource" id="Resource_5ht6k"]
|
||||
script = ExtResource("2_a16tf")
|
||||
TagsToAdd = ExtResource("1_xjqwu")
|
||||
metadata/_custom_type_script = "uid://dngf30hxy5go4"
|
||||
|
||||
[sub_resource type="Resource" id="Resource_bn2qi"]
|
||||
script = ExtResource("3_1wliv")
|
||||
BaseValue = 1.0
|
||||
|
||||
[sub_resource type="Resource" id="Resource_pl2a2"]
|
||||
script = ExtResource("3_1wliv")
|
||||
|
||||
[sub_resource type="Resource" id="Resource_g02pf"]
|
||||
script = ExtResource("3_1wliv")
|
||||
|
||||
[sub_resource type="Resource" id="Resource_7ak88"]
|
||||
script = ExtResource("3_1wliv")
|
||||
BaseValue = 1.0
|
||||
|
||||
[sub_resource type="Resource" id="Resource_f12ll"]
|
||||
script = ExtResource("3_1wliv")
|
||||
|
||||
[sub_resource type="Resource" id="Resource_xodo6"]
|
||||
script = ExtResource("3_1wliv")
|
||||
|
||||
[sub_resource type="Resource" id="Resource_mcqfd"]
|
||||
script = ExtResource("3_1wliv")
|
||||
BaseValue = 2.0
|
||||
metadata/_custom_type_script = "uid://cn3b4ya15fg7e"
|
||||
|
||||
[sub_resource type="Resource" id="Resource_w3q2i"]
|
||||
script = ExtResource("4_7dtdc")
|
||||
ScalableFloat = SubResource("Resource_mcqfd")
|
||||
Coefficient = SubResource("Resource_7ak88")
|
||||
PreMultiplyAdditiveValue = SubResource("Resource_xodo6")
|
||||
PostMultiplyAdditiveValue = SubResource("Resource_f12ll")
|
||||
CalculatorCoefficient = SubResource("Resource_bn2qi")
|
||||
CalculatorPreMultiplyAdditiveValue = SubResource("Resource_g02pf")
|
||||
CalculatorPostMultiplyAdditiveValue = SubResource("Resource_pl2a2")
|
||||
metadata/_custom_type_script = "uid://2gm1hdhi8u08"
|
||||
|
||||
[sub_resource type="Resource" id="Resource_vgvi5"]
|
||||
script = ExtResource("5_ewbg3")
|
||||
BaseValue = 1
|
||||
|
||||
[sub_resource type="Resource" id="Resource_0ujop"]
|
||||
script = ExtResource("5_ewbg3")
|
||||
BaseValue = 1
|
||||
|
||||
[sub_resource type="Resource" id="Resource_s8mqp"]
|
||||
script = ExtResource("6_0akms")
|
||||
Name = "Add Invincible tag effect"
|
||||
Modifiers = Array[Object]([])
|
||||
Components = Array[Object]([SubResource("Resource_5ht6k")])
|
||||
Executions = []
|
||||
DurationType = 2
|
||||
Duration = SubResource("Resource_w3q2i")
|
||||
StackLimit = SubResource("Resource_0ujop")
|
||||
InitialStack = SubResource("Resource_vgvi5")
|
||||
Cues = []
|
||||
metadata/_custom_type_script = "uid://b83hf13nj37k3"
|
||||
|
||||
[sub_resource type="Resource" id="Resource_tcrdt"]
|
||||
script = ExtResource("7_mhqpo")
|
||||
EffectData = SubResource("Resource_s8mqp")
|
||||
Name = "OnHitInvincibility"
|
||||
Description = "Adds the invincible tag for a given period"
|
||||
metadata/_custom_type_script = "uid://cl5hudinl1rex"
|
||||
|
||||
[sub_resource type="Resource" id="Resource_xs7wf"]
|
||||
script = ExtResource("8_4vjp3")
|
||||
Tag = "events.combat.damage"
|
||||
metadata/_custom_type_script = "uid://dpakv7agvir6y"
|
||||
|
||||
[resource]
|
||||
script = ExtResource("9_go27d")
|
||||
Name = "OnHitInvincibility"
|
||||
InstancingPolicy = 1
|
||||
CooldownEffects = []
|
||||
AbilityBehavior = SubResource("Resource_tcrdt")
|
||||
TriggerSource = 1
|
||||
TriggerTag = SubResource("Resource_xs7wf")
|
||||
metadata/_custom_type_script = "uid://dhxfbxh54pyxp"
|
||||
@@ -1,183 +0,0 @@
|
||||
[gd_resource type="Resource" script_class="ForgeAbilityData" format=3 uid="uid://dgjsi1my7nlnk"]
|
||||
|
||||
[ext_resource type="Resource" uid="uid://bn1getr10b4dx" path="res://forge/resources/effect_datas/simple_player_hit.tres" id="1_c4wry"]
|
||||
[ext_resource type="Script" uid="uid://1hgogislo1l6" path="res://addons/forge/resources/magnitudes/ForgeScalableInt.cs" id="1_l0l1a"]
|
||||
[ext_resource type="Script" uid="uid://cw525n4mjqgw0" path="res://addons/forge/resources/ForgeTagContainer.cs" id="1_w1wo0"]
|
||||
[ext_resource type="Script" uid="uid://b83hf13nj37k3" path="res://addons/forge/resources/ForgeEffectData.cs" id="2_5vjbv"]
|
||||
[ext_resource type="Script" uid="uid://d1bb1fvh1mnpd" path="res://forge/abilities/ForgeManualCancelHitBehavior.cs" id="2_c4wry"]
|
||||
[ext_resource type="Script" uid="uid://dngf30hxy5go4" path="res://addons/forge/resources/components/ModifierTags.cs" id="2_jwyed"]
|
||||
[ext_resource type="Resource" uid="uid://vs6kfo2ubhvr" path="res://forge/resources/effect_components/stunnable.tres" id="2_r7waw"]
|
||||
[ext_resource type="Script" uid="uid://dhxfbxh54pyxp" path="res://addons/forge/resources/abilities/ForgeAbilityData.cs" id="3_w1wo0"]
|
||||
[ext_resource type="Script" uid="uid://cn3b4ya15fg7e" path="res://addons/forge/resources/magnitudes/ForgeScalableFloat.cs" id="4_c4wry"]
|
||||
[ext_resource type="Script" uid="uid://2gm1hdhi8u08" path="res://addons/forge/resources/magnitudes/ForgeModifierMagnitude.cs" id="5_0cyim"]
|
||||
[ext_resource type="Script" uid="uid://br7ut4lbau66w" path="res://forge/calculators/ForgeRaiseEventTagExecution.cs" id="7_l5emy"]
|
||||
|
||||
[sub_resource type="Resource" id="Resource_h8gc3"]
|
||||
script = ExtResource("1_w1wo0")
|
||||
ContainerTags = Array[String](["status.stunned"])
|
||||
metadata/_custom_type_script = "uid://cw525n4mjqgw0"
|
||||
|
||||
[sub_resource type="Resource" id="Resource_vioyh"]
|
||||
script = ExtResource("2_jwyed")
|
||||
TagsToAdd = SubResource("Resource_h8gc3")
|
||||
metadata/_custom_type_script = "uid://dngf30hxy5go4"
|
||||
|
||||
[sub_resource type="Resource" id="Resource_m6xnn"]
|
||||
script = ExtResource("4_c4wry")
|
||||
BaseValue = 1.0
|
||||
|
||||
[sub_resource type="Resource" id="Resource_uinv8"]
|
||||
script = ExtResource("4_c4wry")
|
||||
|
||||
[sub_resource type="Resource" id="Resource_04hqa"]
|
||||
script = ExtResource("4_c4wry")
|
||||
|
||||
[sub_resource type="Resource" id="Resource_8fbeq"]
|
||||
script = ExtResource("4_c4wry")
|
||||
BaseValue = 1.0
|
||||
|
||||
[sub_resource type="Resource" id="Resource_ees2v"]
|
||||
script = ExtResource("4_c4wry")
|
||||
|
||||
[sub_resource type="Resource" id="Resource_6x2ov"]
|
||||
script = ExtResource("4_c4wry")
|
||||
|
||||
[sub_resource type="Resource" id="Resource_ml8x2"]
|
||||
script = ExtResource("4_c4wry")
|
||||
BaseValue = 1.0
|
||||
metadata/_custom_type_script = "uid://cn3b4ya15fg7e"
|
||||
|
||||
[sub_resource type="Resource" id="Resource_1uqo4"]
|
||||
script = ExtResource("5_0cyim")
|
||||
ScalableFloat = SubResource("Resource_ml8x2")
|
||||
Coefficient = SubResource("Resource_8fbeq")
|
||||
PreMultiplyAdditiveValue = SubResource("Resource_6x2ov")
|
||||
PostMultiplyAdditiveValue = SubResource("Resource_ees2v")
|
||||
CalculatorCoefficient = SubResource("Resource_m6xnn")
|
||||
CalculatorPreMultiplyAdditiveValue = SubResource("Resource_04hqa")
|
||||
CalculatorPostMultiplyAdditiveValue = SubResource("Resource_uinv8")
|
||||
metadata/_custom_type_script = "uid://2gm1hdhi8u08"
|
||||
|
||||
[sub_resource type="Resource" id="Resource_fyrcc"]
|
||||
script = ExtResource("1_w1wo0")
|
||||
ContainerTags = Array[String](["events.combat.stun_applied"])
|
||||
metadata/_custom_type_script = "uid://cw525n4mjqgw0"
|
||||
|
||||
[sub_resource type="Resource" id="Resource_sgtcb"]
|
||||
script = ExtResource("1_w1wo0")
|
||||
ContainerTags = Array[String](["events.combat.stun_received"])
|
||||
metadata/_custom_type_script = "uid://cw525n4mjqgw0"
|
||||
|
||||
[sub_resource type="Resource" id="Resource_3p0ly"]
|
||||
script = ExtResource("7_l5emy")
|
||||
EventTags = SubResource("Resource_fyrcc")
|
||||
TargetEventTags = SubResource("Resource_sgtcb")
|
||||
metadata/_custom_type_script = "uid://br7ut4lbau66w"
|
||||
|
||||
[sub_resource type="Resource" id="Resource_ewmvj"]
|
||||
script = ExtResource("1_l0l1a")
|
||||
BaseValue = 1
|
||||
|
||||
[sub_resource type="Resource" id="Resource_8wvcn"]
|
||||
script = ExtResource("1_l0l1a")
|
||||
BaseValue = 1
|
||||
|
||||
[sub_resource type="Resource" id="Resource_no8t2"]
|
||||
script = ExtResource("2_5vjbv")
|
||||
Name = "Basic stun"
|
||||
Modifiers = Array[Object]([])
|
||||
Components = Array[Object]([ExtResource("2_r7waw"), SubResource("Resource_vioyh")])
|
||||
Executions = [SubResource("Resource_3p0ly")]
|
||||
DurationType = 2
|
||||
Duration = SubResource("Resource_1uqo4")
|
||||
StackLimit = SubResource("Resource_8wvcn")
|
||||
InitialStack = SubResource("Resource_ewmvj")
|
||||
Cues = []
|
||||
metadata/_custom_type_script = "uid://b83hf13nj37k3"
|
||||
|
||||
[sub_resource type="Resource" id="Resource_0cyim"]
|
||||
script = ExtResource("2_c4wry")
|
||||
OnHitEffects = [ExtResource("1_c4wry"), SubResource("Resource_no8t2")]
|
||||
Name = "Player hit"
|
||||
metadata/_custom_type_script = "uid://d1bb1fvh1mnpd"
|
||||
|
||||
[sub_resource type="Resource" id="Resource_qk2av"]
|
||||
script = ExtResource("1_w1wo0")
|
||||
ContainerTags = Array[String](["status.stunned"])
|
||||
metadata/_custom_type_script = "uid://cw525n4mjqgw0"
|
||||
|
||||
[sub_resource type="Resource" id="Resource_w857g"]
|
||||
script = ExtResource("1_w1wo0")
|
||||
ContainerTags = Array[String](["cooldown.hit"])
|
||||
metadata/_custom_type_script = "uid://cw525n4mjqgw0"
|
||||
|
||||
[sub_resource type="Resource" id="Resource_n2s8d"]
|
||||
script = ExtResource("2_jwyed")
|
||||
TagsToAdd = SubResource("Resource_w857g")
|
||||
metadata/_custom_type_script = "uid://dngf30hxy5go4"
|
||||
|
||||
[sub_resource type="Resource" id="Resource_l5emy"]
|
||||
script = ExtResource("4_c4wry")
|
||||
BaseValue = 1.0
|
||||
|
||||
[sub_resource type="Resource" id="Resource_agfn8"]
|
||||
script = ExtResource("4_c4wry")
|
||||
|
||||
[sub_resource type="Resource" id="Resource_tkxxk"]
|
||||
script = ExtResource("4_c4wry")
|
||||
|
||||
[sub_resource type="Resource" id="Resource_e4qbe"]
|
||||
script = ExtResource("4_c4wry")
|
||||
BaseValue = 1.0
|
||||
|
||||
[sub_resource type="Resource" id="Resource_coxn5"]
|
||||
script = ExtResource("4_c4wry")
|
||||
|
||||
[sub_resource type="Resource" id="Resource_wak7n"]
|
||||
script = ExtResource("4_c4wry")
|
||||
|
||||
[sub_resource type="Resource" id="Resource_bvwi7"]
|
||||
script = ExtResource("4_c4wry")
|
||||
BaseValue = 0.3
|
||||
metadata/_custom_type_script = "uid://cn3b4ya15fg7e"
|
||||
|
||||
[sub_resource type="Resource" id="Resource_3wf5l"]
|
||||
script = ExtResource("5_0cyim")
|
||||
ScalableFloat = SubResource("Resource_bvwi7")
|
||||
Coefficient = SubResource("Resource_e4qbe")
|
||||
PreMultiplyAdditiveValue = SubResource("Resource_wak7n")
|
||||
PostMultiplyAdditiveValue = SubResource("Resource_coxn5")
|
||||
CalculatorCoefficient = SubResource("Resource_l5emy")
|
||||
CalculatorPreMultiplyAdditiveValue = SubResource("Resource_tkxxk")
|
||||
CalculatorPostMultiplyAdditiveValue = SubResource("Resource_agfn8")
|
||||
metadata/_custom_type_script = "uid://2gm1hdhi8u08"
|
||||
|
||||
[sub_resource type="Resource" id="Resource_xs7wf"]
|
||||
script = ExtResource("1_l0l1a")
|
||||
BaseValue = 1
|
||||
|
||||
[sub_resource type="Resource" id="Resource_cm4e8"]
|
||||
script = ExtResource("1_l0l1a")
|
||||
BaseValue = 1
|
||||
|
||||
[sub_resource type="Resource" id="Resource_cmmfb"]
|
||||
script = ExtResource("2_5vjbv")
|
||||
Name = "PlayerHitCooldown"
|
||||
Modifiers = []
|
||||
Components = Array[Object]([SubResource("Resource_n2s8d")])
|
||||
Executions = []
|
||||
DurationType = 2
|
||||
Duration = SubResource("Resource_3wf5l")
|
||||
StackLimit = SubResource("Resource_cm4e8")
|
||||
InitialStack = SubResource("Resource_xs7wf")
|
||||
Cues = []
|
||||
metadata/_custom_type_script = "uid://b83hf13nj37k3"
|
||||
|
||||
[resource]
|
||||
script = ExtResource("3_w1wo0")
|
||||
Name = "PlayerHitAbility"
|
||||
RetriggerInstancedAbility = true
|
||||
CooldownEffects = [SubResource("Resource_cmmfb")]
|
||||
AbilityBehavior = SubResource("Resource_0cyim")
|
||||
ActivationBlockedTags = SubResource("Resource_qk2av")
|
||||
metadata/_custom_type_script = "uid://dhxfbxh54pyxp"
|
||||
@@ -1,63 +0,0 @@
|
||||
[gd_resource type="Resource" script_class="ForgeAbilityData" format=3 uid="uid://0oo3na61ot1o"]
|
||||
|
||||
[ext_resource type="Resource" uid="uid://bk3rv5jrutfjw" path="res://forge/resources/tag_containers/on_weapon_plantedtick.tres" id="1_4dvtr"]
|
||||
[ext_resource type="Script" uid="uid://br7ut4lbau66w" path="res://forge/calculators/ForgeRaiseEventTagExecution.cs" id="2_oo2u8"]
|
||||
[ext_resource type="Script" uid="uid://dpakv7agvir6y" path="res://addons/forge/resources/ForgeTag.cs" id="2_wolay"]
|
||||
[ext_resource type="Script" uid="uid://1hgogislo1l6" path="res://addons/forge/resources/magnitudes/ForgeScalableInt.cs" id="3_cykp3"]
|
||||
[ext_resource type="Script" uid="uid://dhxfbxh54pyxp" path="res://addons/forge/resources/abilities/ForgeAbilityData.cs" id="3_mqsqr"]
|
||||
[ext_resource type="Script" uid="uid://b83hf13nj37k3" path="res://addons/forge/resources/ForgeEffectData.cs" id="4_4348y"]
|
||||
[ext_resource type="Script" uid="uid://cn3b4ya15fg7e" path="res://addons/forge/resources/magnitudes/ForgeScalableFloat.cs" id="4_oo2u8"]
|
||||
[ext_resource type="Script" uid="uid://cl5hudinl1rex" path="res://forge/abilities/ForgeEffectApplicationBehavior.cs" id="5_drdls"]
|
||||
|
||||
[sub_resource type="Resource" id="Resource_l3tir"]
|
||||
script = ExtResource("2_oo2u8")
|
||||
EventTags = ExtResource("1_4dvtr")
|
||||
metadata/_custom_type_script = "uid://br7ut4lbau66w"
|
||||
|
||||
[sub_resource type="Resource" id="Resource_yc0gp"]
|
||||
script = ExtResource("3_cykp3")
|
||||
BaseValue = 1
|
||||
|
||||
[sub_resource type="Resource" id="Resource_cykp3"]
|
||||
script = ExtResource("4_oo2u8")
|
||||
BaseValue = 0.5
|
||||
metadata/_custom_type_script = "uid://cn3b4ya15fg7e"
|
||||
|
||||
[sub_resource type="Resource" id="Resource_rvogu"]
|
||||
script = ExtResource("3_cykp3")
|
||||
BaseValue = 1
|
||||
|
||||
[sub_resource type="Resource" id="Resource_hgeae"]
|
||||
script = ExtResource("4_4348y")
|
||||
Name = "Raise Planted Tick Periodically"
|
||||
Modifiers = []
|
||||
Components = []
|
||||
Executions = Array[Object]([SubResource("Resource_l3tir")])
|
||||
DurationType = 1
|
||||
HasPeriodicApplication = true
|
||||
Period = SubResource("Resource_cykp3")
|
||||
ExecuteOnApplication = true
|
||||
StackLimit = SubResource("Resource_rvogu")
|
||||
InitialStack = SubResource("Resource_yc0gp")
|
||||
Cues = []
|
||||
metadata/_custom_type_script = "uid://b83hf13nj37k3"
|
||||
|
||||
[sub_resource type="Resource" id="Resource_jiqxq"]
|
||||
script = ExtResource("5_drdls")
|
||||
EffectData = SubResource("Resource_hgeae")
|
||||
metadata/_custom_type_script = "uid://cl5hudinl1rex"
|
||||
|
||||
[sub_resource type="Resource" id="Resource_4aw8y"]
|
||||
script = ExtResource("2_wolay")
|
||||
Tag = "events.weapon.planted"
|
||||
metadata/_custom_type_script = "uid://dpakv7agvir6y"
|
||||
|
||||
[resource]
|
||||
script = ExtResource("3_mqsqr")
|
||||
Name = "Weapon Planted Tick"
|
||||
RetriggerInstancedAbility = true
|
||||
CooldownEffects = []
|
||||
AbilityBehavior = SubResource("Resource_jiqxq")
|
||||
TriggerSource = 1
|
||||
TriggerTag = SubResource("Resource_4aw8y")
|
||||
metadata/_custom_type_script = "uid://dhxfbxh54pyxp"
|
||||
@@ -1,17 +0,0 @@
|
||||
[gd_resource type="Resource" script_class="ForgeCue" format=3 uid="uid://bsqvfefpb7jix"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://cw525n4mjqgw0" path="res://addons/forge/resources/ForgeTagContainer.cs" id="1_tvgrb"]
|
||||
[ext_resource type="Script" uid="uid://cmrsxccn0ei4j" path="res://addons/forge/resources/ForgeCue.cs" id="2_dyb6j"]
|
||||
|
||||
[sub_resource type="Resource" id="Resource_f35o6"]
|
||||
script = ExtResource("1_tvgrb")
|
||||
ContainerTags = Array[String](["cues.resources.health", "character.player"])
|
||||
metadata/_custom_type_script = "uid://cw525n4mjqgw0"
|
||||
|
||||
[resource]
|
||||
script = ExtResource("2_dyb6j")
|
||||
CueKeys = SubResource("Resource_f35o6")
|
||||
MaxValue = 100
|
||||
MagnitudeType = 2
|
||||
MagnitudeAttribute = "PlayerAttributeSet.Health"
|
||||
metadata/_custom_type_script = "uid://cmrsxccn0ei4j"
|
||||
@@ -1,11 +0,0 @@
|
||||
[gd_resource type="Resource" script_class="ForgeDamageExecution" format=3 uid="uid://4rkwr10pc6tp"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://cfx62w40nd84v" path="res://forge/calculators/ForgeDamageExecution.cs" id="1_bo86y"]
|
||||
[ext_resource type="Resource" uid="uid://sn6kndc6ukic" path="res://forge/resources/tag_containers/on_damage_dealt.tres" id="1_hmxxf"]
|
||||
[ext_resource type="Resource" uid="uid://5tr54q0rdpho" path="res://forge/resources/tag_containers/on_damage_taken.tres" id="2_6r7e6"]
|
||||
|
||||
[resource]
|
||||
script = ExtResource("1_bo86y")
|
||||
DamageDealerEventTags = ExtResource("1_hmxxf")
|
||||
DamageReceiverEventTags = ExtResource("2_6r7e6")
|
||||
metadata/_custom_type_script = "uid://cfx62w40nd84v"
|
||||
@@ -1,22 +0,0 @@
|
||||
[gd_resource type="Resource" script_class="ForgeKnockbackExecution" format=3 uid="uid://cc1qrmbp12fk8"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://b44cse62qru7j" path="res://scenes/components/knockback/RKnockback.cs" id="1_kcl5u"]
|
||||
[ext_resource type="Resource" uid="uid://bhn27s8ne0uyg" path="res://forge/resources/tag_containers/on_knockback_dealt.tres" id="2_oqtq1"]
|
||||
[ext_resource type="Resource" uid="uid://bkr6uu57wm3o3" path="res://forge/resources/tag_containers/on_knockback_received.tres" id="3_1va1b"]
|
||||
[ext_resource type="Resource" uid="uid://5obdxlcpw8qt" path="res://forge/resources/tag_containers/knockback_immune.tres" id="3_oqtq1"]
|
||||
[ext_resource type="Resource" uid="uid://45l7vnfs72b" path="res://forge/resources/tag_containers/knockbackable_tag.tres" id="4_0i0oh"]
|
||||
[ext_resource type="Script" uid="uid://diondfg5xp78h" path="res://forge/calculators/ForgeKnockbackExecution.cs" id="5_babc1"]
|
||||
|
||||
[sub_resource type="Resource" id="Resource_6x2ov"]
|
||||
script = ExtResource("1_kcl5u")
|
||||
Modifier = 50.0
|
||||
metadata/_custom_type_script = "uid://b44cse62qru7j"
|
||||
|
||||
[resource]
|
||||
script = ExtResource("5_babc1")
|
||||
KnockbackableTag = ExtResource("4_0i0oh")
|
||||
KnockbackImmuneTag = ExtResource("3_oqtq1")
|
||||
Knockback = SubResource("Resource_6x2ov")
|
||||
KnockbackDealerEventTags = ExtResource("2_oqtq1")
|
||||
KnockbackReceiverEventTags = ExtResource("3_1va1b")
|
||||
metadata/_custom_type_script = "uid://diondfg5xp78h"
|
||||
@@ -1,11 +0,0 @@
|
||||
[gd_resource type="Resource" script_class="ForgeRaiseEventTagExecution" format=3 uid="uid://dlu7l5egpexnn"]
|
||||
|
||||
[ext_resource type="Resource" uid="uid://sn6kndc6ukic" path="res://forge/resources/tag_containers/on_damage_dealt.tres" id="1_cum8v"]
|
||||
[ext_resource type="Resource" uid="uid://5tr54q0rdpho" path="res://forge/resources/tag_containers/on_damage_taken.tres" id="2_w48xp"]
|
||||
[ext_resource type="Script" uid="uid://br7ut4lbau66w" path="res://forge/calculators/ForgeRaiseEventTagExecution.cs" id="3_ggrwn"]
|
||||
|
||||
[resource]
|
||||
script = ExtResource("3_ggrwn")
|
||||
EventTags = ExtResource("1_cum8v")
|
||||
TargetEventTags = ExtResource("2_w48xp")
|
||||
metadata/_custom_type_script = "uid://br7ut4lbau66w"
|
||||
@@ -1,11 +0,0 @@
|
||||
[gd_resource type="Resource" script_class="TargetTagRequirements" format=3 uid="uid://bpovqvlqv5bs5"]
|
||||
|
||||
[ext_resource type="Resource" uid="uid://cw2ytd34jsxj" path="res://forge/resources/tag_containers/immune_damage.tres" id="1_8qlnl"]
|
||||
[ext_resource type="Resource" uid="uid://bsogx7yhedjry" path="res://forge/resources/tag_containers/trait_damageable.tres" id="2_vxkk1"]
|
||||
[ext_resource type="Script" uid="uid://b0eq12mjqfage" path="res://addons/forge/resources/components/TargetTagRequirements.cs" id="3_1mj5a"]
|
||||
|
||||
[resource]
|
||||
script = ExtResource("3_1mj5a")
|
||||
ApplicationRequiredTags = ExtResource("2_vxkk1")
|
||||
ApplicationIgnoredTags = ExtResource("1_8qlnl")
|
||||
metadata/_custom_type_script = "uid://b0eq12mjqfage"
|
||||
@@ -1,20 +0,0 @@
|
||||
[gd_resource type="Resource" script_class="TargetTagRequirements" format=3 uid="uid://vs6kfo2ubhvr"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://cw525n4mjqgw0" path="res://addons/forge/resources/ForgeTagContainer.cs" id="1_52mex"]
|
||||
[ext_resource type="Script" uid="uid://b0eq12mjqfage" path="res://addons/forge/resources/components/TargetTagRequirements.cs" id="2_d06a4"]
|
||||
|
||||
[sub_resource type="Resource" id="Resource_r7waw"]
|
||||
script = ExtResource("1_52mex")
|
||||
ContainerTags = Array[String](["immunity.stun"])
|
||||
metadata/_custom_type_script = "uid://cw525n4mjqgw0"
|
||||
|
||||
[sub_resource type="Resource" id="Resource_vioyh"]
|
||||
script = ExtResource("1_52mex")
|
||||
ContainerTags = Array[String](["traits.stunnable"])
|
||||
metadata/_custom_type_script = "uid://cw525n4mjqgw0"
|
||||
|
||||
[resource]
|
||||
script = ExtResource("2_d06a4")
|
||||
ApplicationRequiredTags = SubResource("Resource_vioyh")
|
||||
ApplicationIgnoredTags = SubResource("Resource_r7waw")
|
||||
metadata/_custom_type_script = "uid://b0eq12mjqfage"
|
||||
@@ -1,66 +0,0 @@
|
||||
[gd_resource type="Resource" script_class="ForgeEffectData" format=3 uid="uid://bn1getr10b4dx"]
|
||||
|
||||
[ext_resource type="Resource" uid="uid://bpovqvlqv5bs5" path="res://forge/resources/effect_components/damageable.tres" id="1_uev3b"]
|
||||
[ext_resource type="Resource" uid="uid://4rkwr10pc6tp" path="res://forge/resources/custom_executions/physical_damage_calculator.tres" id="2_o3goh"]
|
||||
[ext_resource type="Resource" uid="uid://cc1qrmbp12fk8" path="res://forge/resources/custom_executions/player_hit_knoback_calculation.tres" id="3_bydif"]
|
||||
[ext_resource type="Script" uid="uid://1hgogislo1l6" path="res://addons/forge/resources/magnitudes/ForgeScalableInt.cs" id="4_sd5hm"]
|
||||
[ext_resource type="Script" uid="uid://cn3b4ya15fg7e" path="res://addons/forge/resources/magnitudes/ForgeScalableFloat.cs" id="5_l6rea"]
|
||||
[ext_resource type="Script" uid="uid://bdfcavbjyhxxa" path="res://addons/forge/resources/ForgeModifier.cs" id="6_juqkp"]
|
||||
[ext_resource type="Script" uid="uid://b83hf13nj37k3" path="res://addons/forge/resources/ForgeEffectData.cs" id="7_njbpb"]
|
||||
|
||||
[sub_resource type="Resource" id="Resource_0cyim"]
|
||||
script = ExtResource("4_sd5hm")
|
||||
BaseValue = 1
|
||||
|
||||
[sub_resource type="Resource" id="Resource_h8gc3"]
|
||||
script = ExtResource("5_l6rea")
|
||||
BaseValue = 1.0
|
||||
|
||||
[sub_resource type="Resource" id="Resource_ewmvj"]
|
||||
script = ExtResource("5_l6rea")
|
||||
|
||||
[sub_resource type="Resource" id="Resource_8wvcn"]
|
||||
script = ExtResource("5_l6rea")
|
||||
|
||||
[sub_resource type="Resource" id="Resource_no8t2"]
|
||||
script = ExtResource("5_l6rea")
|
||||
BaseValue = 1.0
|
||||
|
||||
[sub_resource type="Resource" id="Resource_vioyh"]
|
||||
script = ExtResource("5_l6rea")
|
||||
|
||||
[sub_resource type="Resource" id="Resource_m6xnn"]
|
||||
script = ExtResource("5_l6rea")
|
||||
|
||||
[sub_resource type="Resource" id="Resource_uinv8"]
|
||||
script = ExtResource("5_l6rea")
|
||||
BaseValue = 40.0
|
||||
metadata/_custom_type_script = "uid://cn3b4ya15fg7e"
|
||||
|
||||
[sub_resource type="Resource" id="Resource_04hqa"]
|
||||
script = ExtResource("6_juqkp")
|
||||
Attribute = "MetaAttributeSet.IncomingDamage"
|
||||
Operation = 2
|
||||
ScalableFloat = SubResource("Resource_uinv8")
|
||||
Coefficient = SubResource("Resource_no8t2")
|
||||
PreMultiplyAdditiveValue = SubResource("Resource_m6xnn")
|
||||
PostMultiplyAdditiveValue = SubResource("Resource_vioyh")
|
||||
CalculatorCoefficient = SubResource("Resource_h8gc3")
|
||||
CalculatorPreMultiplyAdditiveValue = SubResource("Resource_8wvcn")
|
||||
CalculatorPostMultiplyAdditiveValue = SubResource("Resource_ewmvj")
|
||||
metadata/_custom_type_script = "uid://bdfcavbjyhxxa"
|
||||
|
||||
[sub_resource type="Resource" id="Resource_8fbeq"]
|
||||
script = ExtResource("4_sd5hm")
|
||||
BaseValue = 1
|
||||
|
||||
[resource]
|
||||
script = ExtResource("7_njbpb")
|
||||
Name = "Player Hit Effect"
|
||||
Modifiers = Array[Object]([SubResource("Resource_04hqa")])
|
||||
Components = Array[Object]([ExtResource("1_uev3b")])
|
||||
Executions = Array[Object]([ExtResource("2_o3goh"), ExtResource("3_bydif")])
|
||||
StackLimit = SubResource("Resource_8fbeq")
|
||||
InitialStack = SubResource("Resource_0cyim")
|
||||
Cues = []
|
||||
metadata/_custom_type_script = "uid://b83hf13nj37k3"
|
||||
@@ -1,70 +0,0 @@
|
||||
[gd_resource type="Resource" script_class="ForgeEffectData" format=3 uid="uid://c4ea6ktafqe0r"]
|
||||
|
||||
[ext_resource type="Resource" uid="uid://cw2ytd34jsxj" path="res://forge/resources/tag_containers/immune_damage.tres" id="1_suvh6"]
|
||||
[ext_resource type="Script" uid="uid://dngf30hxy5go4" path="res://addons/forge/resources/components/ModifierTags.cs" id="2_7y7k0"]
|
||||
[ext_resource type="Script" uid="uid://cn3b4ya15fg7e" path="res://addons/forge/resources/magnitudes/ForgeScalableFloat.cs" id="3_wdmyo"]
|
||||
[ext_resource type="Script" uid="uid://2gm1hdhi8u08" path="res://addons/forge/resources/magnitudes/ForgeModifierMagnitude.cs" id="4_m2dme"]
|
||||
[ext_resource type="Script" uid="uid://1hgogislo1l6" path="res://addons/forge/resources/magnitudes/ForgeScalableInt.cs" id="5_uck3v"]
|
||||
[ext_resource type="Script" uid="uid://b83hf13nj37k3" path="res://addons/forge/resources/ForgeEffectData.cs" id="6_gt48y"]
|
||||
|
||||
[sub_resource type="Resource" id="Resource_xltxv"]
|
||||
script = ExtResource("2_7y7k0")
|
||||
TagsToAdd = ExtResource("1_suvh6")
|
||||
metadata/_custom_type_script = "uid://dngf30hxy5go4"
|
||||
|
||||
[sub_resource type="Resource" id="Resource_60xl1"]
|
||||
script = ExtResource("3_wdmyo")
|
||||
BaseValue = 1.0
|
||||
|
||||
[sub_resource type="Resource" id="Resource_2rev5"]
|
||||
script = ExtResource("3_wdmyo")
|
||||
|
||||
[sub_resource type="Resource" id="Resource_kxytj"]
|
||||
script = ExtResource("3_wdmyo")
|
||||
|
||||
[sub_resource type="Resource" id="Resource_e5nje"]
|
||||
script = ExtResource("3_wdmyo")
|
||||
BaseValue = 1.0
|
||||
|
||||
[sub_resource type="Resource" id="Resource_xc8ja"]
|
||||
script = ExtResource("3_wdmyo")
|
||||
|
||||
[sub_resource type="Resource" id="Resource_tan32"]
|
||||
script = ExtResource("3_wdmyo")
|
||||
|
||||
[sub_resource type="Resource" id="Resource_l52b0"]
|
||||
script = ExtResource("3_wdmyo")
|
||||
BaseValue = 0.3
|
||||
metadata/_custom_type_script = "uid://cn3b4ya15fg7e"
|
||||
|
||||
[sub_resource type="Resource" id="Resource_6jn6y"]
|
||||
script = ExtResource("4_m2dme")
|
||||
ScalableFloat = SubResource("Resource_l52b0")
|
||||
Coefficient = SubResource("Resource_e5nje")
|
||||
PreMultiplyAdditiveValue = SubResource("Resource_tan32")
|
||||
PostMultiplyAdditiveValue = SubResource("Resource_xc8ja")
|
||||
CalculatorCoefficient = SubResource("Resource_60xl1")
|
||||
CalculatorPreMultiplyAdditiveValue = SubResource("Resource_kxytj")
|
||||
CalculatorPostMultiplyAdditiveValue = SubResource("Resource_2rev5")
|
||||
metadata/_custom_type_script = "uid://2gm1hdhi8u08"
|
||||
|
||||
[sub_resource type="Resource" id="Resource_ev6w4"]
|
||||
script = ExtResource("5_uck3v")
|
||||
BaseValue = 1
|
||||
|
||||
[sub_resource type="Resource" id="Resource_u8xa8"]
|
||||
script = ExtResource("5_uck3v")
|
||||
BaseValue = 1
|
||||
|
||||
[resource]
|
||||
script = ExtResource("6_gt48y")
|
||||
Name = "ApplyInvincibility"
|
||||
Modifiers = []
|
||||
Components = Array[Object]([SubResource("Resource_xltxv")])
|
||||
Executions = []
|
||||
DurationType = 2
|
||||
Duration = SubResource("Resource_6jn6y")
|
||||
StackLimit = SubResource("Resource_u8xa8")
|
||||
InitialStack = SubResource("Resource_ev6w4")
|
||||
Cues = []
|
||||
metadata/_custom_type_script = "uid://b83hf13nj37k3"
|
||||
@@ -1,8 +0,0 @@
|
||||
[gd_resource type="Resource" script_class="ForgeTagContainer" format=3 uid="uid://bocsykxbh8l0g"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://cw525n4mjqgw0" path="res://addons/forge/resources/ForgeTagContainer.cs" id="1_kdy2b"]
|
||||
|
||||
[resource]
|
||||
script = ExtResource("1_kdy2b")
|
||||
ContainerTags = Array[String](["character.enemy", "traits.damageable", "traits.knockbackable", "traits.stunnable"])
|
||||
metadata/_custom_type_script = "uid://cw525n4mjqgw0"
|
||||
@@ -1,8 +0,0 @@
|
||||
[gd_resource type="Resource" script_class="ForgeTagContainer" format=3 uid="uid://cw2ytd34jsxj"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://cw525n4mjqgw0" path="res://addons/forge/resources/ForgeTagContainer.cs" id="1_vmvhu"]
|
||||
|
||||
[resource]
|
||||
script = ExtResource("1_vmvhu")
|
||||
ContainerTags = Array[String](["immunity.damage"])
|
||||
metadata/_custom_type_script = "uid://cw525n4mjqgw0"
|
||||
@@ -1,8 +0,0 @@
|
||||
[gd_resource type="Resource" script_class="ForgeTag" format=3 uid="uid://5obdxlcpw8qt"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://dpakv7agvir6y" path="res://addons/forge/resources/ForgeTag.cs" id="1_pjklh"]
|
||||
|
||||
[resource]
|
||||
script = ExtResource("1_pjklh")
|
||||
Tag = "immunity.knockback"
|
||||
metadata/_custom_type_script = "uid://dpakv7agvir6y"
|
||||
@@ -1,8 +0,0 @@
|
||||
[gd_resource type="Resource" script_class="ForgeTag" format=3 uid="uid://45l7vnfs72b"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://dpakv7agvir6y" path="res://addons/forge/resources/ForgeTag.cs" id="1_1cy5u"]
|
||||
|
||||
[resource]
|
||||
script = ExtResource("1_1cy5u")
|
||||
Tag = "traits.knockbackable"
|
||||
metadata/_custom_type_script = "uid://dpakv7agvir6y"
|
||||
@@ -1,8 +0,0 @@
|
||||
[gd_resource type="Resource" script_class="ForgeTagContainer" format=3 uid="uid://sn6kndc6ukic"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://cw525n4mjqgw0" path="res://addons/forge/resources/ForgeTagContainer.cs" id="1_4beov"]
|
||||
|
||||
[resource]
|
||||
script = ExtResource("1_4beov")
|
||||
ContainerTags = Array[String](["events.combat.hit"])
|
||||
metadata/_custom_type_script = "uid://cw525n4mjqgw0"
|
||||
@@ -1,8 +0,0 @@
|
||||
[gd_resource type="Resource" script_class="ForgeTagContainer" format=3 uid="uid://5tr54q0rdpho"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://cw525n4mjqgw0" path="res://addons/forge/resources/ForgeTagContainer.cs" id="1_nvopg"]
|
||||
|
||||
[resource]
|
||||
script = ExtResource("1_nvopg")
|
||||
ContainerTags = Array[String](["events.combat.damage"])
|
||||
metadata/_custom_type_script = "uid://cw525n4mjqgw0"
|
||||
@@ -1,8 +0,0 @@
|
||||
[gd_resource type="Resource" script_class="ForgeTag" format=3 uid="uid://bkr1xfokymvp4"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://dpakv7agvir6y" path="res://addons/forge/resources/ForgeTag.cs" id="1_ux16b"]
|
||||
|
||||
[resource]
|
||||
script = ExtResource("1_ux16b")
|
||||
Tag = "events.enemy.launch_projectile"
|
||||
metadata/_custom_type_script = "uid://dpakv7agvir6y"
|
||||
@@ -1,8 +0,0 @@
|
||||
[gd_resource type="Resource" script_class="ForgeTag" format=3 uid="uid://csh8jcxtrs11k"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://dpakv7agvir6y" path="res://addons/forge/resources/ForgeTag.cs" id="1_3ab6s"]
|
||||
|
||||
[resource]
|
||||
script = ExtResource("1_3ab6s")
|
||||
Tag = "events.enemy.try_hit"
|
||||
metadata/_custom_type_script = "uid://dpakv7agvir6y"
|
||||
@@ -1,8 +0,0 @@
|
||||
[gd_resource type="Resource" script_class="ForgeTagContainer" format=3 uid="uid://bhn27s8ne0uyg"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://cw525n4mjqgw0" path="res://addons/forge/resources/ForgeTagContainer.cs" id="1_kgxiq"]
|
||||
|
||||
[resource]
|
||||
script = ExtResource("1_kgxiq")
|
||||
ContainerTags = Array[String](["events.combat.knockback_dealt"])
|
||||
metadata/_custom_type_script = "uid://cw525n4mjqgw0"
|
||||
@@ -1,8 +0,0 @@
|
||||
[gd_resource type="Resource" script_class="ForgeTagContainer" format=3 uid="uid://bkr6uu57wm3o3"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://cw525n4mjqgw0" path="res://addons/forge/resources/ForgeTagContainer.cs" id="1_ro1gp"]
|
||||
|
||||
[resource]
|
||||
script = ExtResource("1_ro1gp")
|
||||
ContainerTags = Array[String](["events.combat.knockback_received"])
|
||||
metadata/_custom_type_script = "uid://cw525n4mjqgw0"
|
||||
@@ -1,8 +0,0 @@
|
||||
[gd_resource type="Resource" script_class="ForgeTagContainer" format=3 uid="uid://bk3rv5jrutfjw"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://cw525n4mjqgw0" path="res://addons/forge/resources/ForgeTagContainer.cs" id="1_gt2iq"]
|
||||
|
||||
[resource]
|
||||
script = ExtResource("1_gt2iq")
|
||||
ContainerTags = Array[String](["events.weapon.plantedtick"])
|
||||
metadata/_custom_type_script = "uid://cw525n4mjqgw0"
|
||||
@@ -1,8 +0,0 @@
|
||||
[gd_resource type="Resource" script_class="ForgeTagContainer" format=3 uid="uid://bsogx7yhedjry"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://cw525n4mjqgw0" path="res://addons/forge/resources/ForgeTagContainer.cs" id="1_wyb42"]
|
||||
|
||||
[resource]
|
||||
script = ExtResource("1_wyb42")
|
||||
ContainerTags = Array[String](["traits.damageable"])
|
||||
metadata/_custom_type_script = "uid://cw525n4mjqgw0"
|
||||
12
interfaces/IAbilityBase.cs
Normal file
12
interfaces/IAbilityBase.cs
Normal file
@@ -0,0 +1,12 @@
|
||||
using Gamesmiths.Forge.Abilities;
|
||||
using Gamesmiths.Forge.Effects;
|
||||
using Gamesmiths.Forge.Tags;
|
||||
using Godot;
|
||||
|
||||
namespace Movementtests.interfaces;
|
||||
|
||||
public interface IAbilityBase<TCreation, TPayload>
|
||||
{
|
||||
AbilityData Ability(TCreation creationData, TagContainer? tags);
|
||||
IAbilityBehavior<TPayload> Behavior(TCreation creationData);
|
||||
}
|
||||
1
interfaces/IAbilityBase.cs.uid
Normal file
1
interfaces/IAbilityBase.cs.uid
Normal file
@@ -0,0 +1 @@
|
||||
uid://de881c2xsbutk
|
||||
9
interfaces/IDamageDealer.cs
Normal file
9
interfaces/IDamageDealer.cs
Normal file
@@ -0,0 +1,9 @@
|
||||
using Godot;
|
||||
|
||||
namespace Movementtests.interfaces;
|
||||
|
||||
public interface IDamageDealer
|
||||
{
|
||||
[Export]
|
||||
RDamage RDamage { get; set; }
|
||||
}
|
||||
1
interfaces/IDamageDealer.cs.uid
Normal file
1
interfaces/IDamageDealer.cs.uid
Normal file
@@ -0,0 +1 @@
|
||||
uid://wdqo51131g5
|
||||
14
interfaces/IDamageable.cs
Normal file
14
interfaces/IDamageable.cs
Normal file
@@ -0,0 +1,14 @@
|
||||
using System;
|
||||
using Godot;
|
||||
|
||||
namespace Movementtests.interfaces;
|
||||
|
||||
public record DamageRecord(Vector3 SourceLocation, RDamage Damage);
|
||||
|
||||
public interface IDamageable
|
||||
{
|
||||
event Action<IDamageable, DamageRecord> DamageTaken;
|
||||
|
||||
DamageRecord TakeDamage(DamageRecord damageRecord);
|
||||
DamageRecord ComputeDamage(DamageRecord damageRecord);
|
||||
}
|
||||
1
interfaces/IDamageable.cs.uid
Normal file
1
interfaces/IDamageable.cs.uid
Normal file
@@ -0,0 +1 @@
|
||||
uid://cf56b2ep3bu3j
|
||||
@@ -1,12 +0,0 @@
|
||||
using Godot;
|
||||
|
||||
namespace Movementtests.interfaces;
|
||||
|
||||
public interface IDisableable
|
||||
{
|
||||
bool IsDisabled { get; set; }
|
||||
[Export] float DisableDuration { get; set; }
|
||||
|
||||
void Disable();
|
||||
void Enable();
|
||||
}
|
||||
18
interfaces/IHealthable.cs
Normal file
18
interfaces/IHealthable.cs
Normal file
@@ -0,0 +1,18 @@
|
||||
using System;
|
||||
using Godot;
|
||||
|
||||
namespace Movementtests.interfaces;
|
||||
|
||||
public record HealthChangedRecord(float CurrentHealth, float PreviousHealth, float MaxHealth);
|
||||
|
||||
public interface IHealthable
|
||||
{
|
||||
event Action<IHealthable, HealthChangedRecord> HealthChanged;
|
||||
event Action<IHealthable> HealthDepleted;
|
||||
|
||||
[Export] RHealth? RHealth { get; set; }
|
||||
|
||||
float CurrentHealth { get; set; }
|
||||
|
||||
HealthChangedRecord ReduceHealth(IDamageable source, DamageRecord damageRecord);
|
||||
}
|
||||
1
interfaces/IHealthable.cs.uid
Normal file
1
interfaces/IHealthable.cs.uid
Normal file
@@ -0,0 +1 @@
|
||||
uid://bea2kvnu3kuhu
|
||||
@@ -2,5 +2,5 @@ namespace Movementtests.interfaces;
|
||||
|
||||
public interface IKillable
|
||||
{
|
||||
void Kill();
|
||||
void Kill(IHealthable source);
|
||||
}
|
||||
@@ -1,9 +1,8 @@
|
||||
using Godot;
|
||||
using Movementtests.scenes.components.knockback;
|
||||
|
||||
namespace Movementtests.interfaces;
|
||||
|
||||
public record KnockbackRecord(Vector3 Direction, float ForceMultiplier = 1.0f);
|
||||
public record KnockbackRecord(DamageRecord DamageRecord, float ForceMultiplier = 1.0f);
|
||||
|
||||
public interface IKnockbackable
|
||||
{
|
||||
|
||||
@@ -5,10 +5,9 @@ namespace Movementtests.interfaces;
|
||||
public record MovementInputs(
|
||||
Vector3 Velocity = default,
|
||||
Vector3 TargetLocation = default,
|
||||
bool IsOnFloor = false,
|
||||
bool IsStunned = false,
|
||||
Vector3 Gravity = default,
|
||||
double Delta = 0);
|
||||
bool isOnFloor = false,
|
||||
Vector3 gravity = default,
|
||||
double delta = 0);
|
||||
|
||||
public interface IMoveable
|
||||
{
|
||||
|
||||
@@ -3,5 +3,5 @@ using Godot;
|
||||
|
||||
interface ISpawnable
|
||||
{
|
||||
void Init();
|
||||
void Initialize();
|
||||
}
|
||||
12
interfaces/IStunnable.cs
Normal file
12
interfaces/IStunnable.cs
Normal file
@@ -0,0 +1,12 @@
|
||||
using Godot;
|
||||
|
||||
namespace Movementtests.interfaces;
|
||||
|
||||
public interface IStunnable
|
||||
{
|
||||
bool IsStunned { get; set; }
|
||||
[Export] float StunDuration { get; set; }
|
||||
|
||||
void Stun();
|
||||
void Unstun();
|
||||
}
|
||||
@@ -5,6 +5,10 @@ namespace Movementtests.interfaces;
|
||||
|
||||
public static class NodeExtensions
|
||||
{
|
||||
public static IDamageable[] ToIDamageables(this GodotObject[] nodes)
|
||||
{
|
||||
return nodes == null ? System.Array.Empty<IDamageable>() : nodes.OfType<IDamageable>().ToArray();
|
||||
}
|
||||
public static IKillable[] ToIKillables(this GodotObject[] nodes)
|
||||
{
|
||||
return nodes == null ? System.Array.Empty<IKillable>() : nodes.OfType<IKillable>().ToArray();
|
||||
|
||||
@@ -1,86 +0,0 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using Chickensoft.AutoInject;
|
||||
using Chickensoft.Introspection;
|
||||
using Chickensoft.Sync.Primitives;
|
||||
using Gamesmiths.Forge.Godot.Resources.Abilities;
|
||||
using Godot;
|
||||
using Movementtests.systems;
|
||||
|
||||
namespace Movementtests.managers;
|
||||
|
||||
|
||||
[GlobalClass, Meta(typeof(IAutoNode))]
|
||||
public partial class InventoryManager : Node, IDisposable
|
||||
{
|
||||
public override void _Notification(int what) => this.Notify(what);
|
||||
|
||||
private AutoSet<ForgeAbilityBehavior> _startedFlyingAbilities = new();
|
||||
private AutoSet<ForgeAbilityBehavior> _flyingTickAbilities = new();
|
||||
private AutoSet<ForgeAbilityBehavior> _stoppedFlyingAbilities = new();
|
||||
|
||||
private AutoSet<ForgeAbilityBehavior> _startedPlantedAbilities = new();
|
||||
private AutoSet<ForgeAbilityBehavior> _plantedTickAbilities = new();
|
||||
private AutoSet<ForgeAbilityBehavior> _stoppedPlantedAbilities = new();
|
||||
|
||||
public IAutoSet<ForgeAbilityBehavior> StartedFlyingAbilities => _startedFlyingAbilities;
|
||||
public IAutoSet<ForgeAbilityBehavior> FlyingTickAbilities => _flyingTickAbilities;
|
||||
public IAutoSet<ForgeAbilityBehavior> StoppedFlyingAbilities => _stoppedFlyingAbilities;
|
||||
|
||||
public IAutoSet<ForgeAbilityBehavior> StartedPlantedAbilities => _startedPlantedAbilities;
|
||||
public IAutoSet<ForgeAbilityBehavior> PlantedTickAbilities => _plantedTickAbilities;
|
||||
public IAutoSet<ForgeAbilityBehavior> StoppedPlantedAbilities => _stoppedPlantedAbilities;
|
||||
|
||||
private readonly AutoMap<WeaponSystem.WeaponEvent, AutoSet<ForgeAbilityBehavior>> _weaponEventsInventory = new();
|
||||
public IAutoMap<WeaponSystem.WeaponEvent, AutoSet<ForgeAbilityBehavior>> WeaponEventsInventory => _weaponEventsInventory;
|
||||
|
||||
public void OnReady()
|
||||
{
|
||||
_weaponEventsInventory[WeaponSystem.WeaponEvent.StartedFlying] = _startedFlyingAbilities;
|
||||
_weaponEventsInventory[WeaponSystem.WeaponEvent.StoppedFlying] = _stoppedFlyingAbilities;
|
||||
_weaponEventsInventory[WeaponSystem.WeaponEvent.FlyingTick] = _flyingTickAbilities;
|
||||
_weaponEventsInventory[WeaponSystem.WeaponEvent.StartedPlanted] = _startedPlantedAbilities;
|
||||
_weaponEventsInventory[WeaponSystem.WeaponEvent.StoppedPlanted] = _stoppedPlantedAbilities;
|
||||
_weaponEventsInventory[WeaponSystem.WeaponEvent.PlantedTick] = _plantedTickAbilities;
|
||||
}
|
||||
|
||||
public void InitializeFromResource(WeaponInventory inventory)
|
||||
{
|
||||
var eventMap = inventory.GetEventAbilitiesMap();
|
||||
_startedFlyingAbilities = new AutoSet<ForgeAbilityBehavior>(eventMap[WeaponSystem.WeaponEvent.StartedFlying]);
|
||||
_stoppedFlyingAbilities = new AutoSet<ForgeAbilityBehavior>(eventMap[WeaponSystem.WeaponEvent.StoppedFlying]);
|
||||
_flyingTickAbilities = new AutoSet<ForgeAbilityBehavior>(eventMap[WeaponSystem.WeaponEvent.FlyingTick]);
|
||||
|
||||
_startedPlantedAbilities = new AutoSet<ForgeAbilityBehavior>(eventMap[WeaponSystem.WeaponEvent.StartedPlanted]);
|
||||
_stoppedPlantedAbilities = new AutoSet<ForgeAbilityBehavior>(eventMap[WeaponSystem.WeaponEvent.StoppedPlanted]);
|
||||
_plantedTickAbilities = new AutoSet<ForgeAbilityBehavior>(eventMap[WeaponSystem.WeaponEvent.PlantedTick]);
|
||||
}
|
||||
|
||||
public new void Dispose()
|
||||
{
|
||||
GC.SuppressFinalize(this);
|
||||
|
||||
_startedFlyingAbilities.Dispose();
|
||||
_stoppedFlyingAbilities.Dispose();
|
||||
_flyingTickAbilities.Dispose();
|
||||
_startedPlantedAbilities.Dispose();
|
||||
_stoppedPlantedAbilities.Dispose();
|
||||
_plantedTickAbilities.Dispose();
|
||||
|
||||
_weaponEventsInventory.Dispose();
|
||||
|
||||
base.Dispose();
|
||||
}
|
||||
|
||||
public void AddAbilityForWeaponEvent(WeaponSystem.WeaponEvent forEvent, ForgeAbilityBehavior abilityBehavior)
|
||||
{
|
||||
var inventoryForEvent = _weaponEventsInventory[forEvent];
|
||||
inventoryForEvent.Add(abilityBehavior);
|
||||
}
|
||||
|
||||
public void RemoveAbilityForWeaponEvent(WeaponSystem.WeaponEvent forEvent, ForgeAbilityBehavior abilityBehavior)
|
||||
{
|
||||
var inventoryForEvent = _weaponEventsInventory[forEvent];
|
||||
inventoryForEvent.Remove(abilityBehavior);
|
||||
}
|
||||
}
|
||||
@@ -1,51 +0,0 @@
|
||||
using System.Collections.Generic;
|
||||
using Gamesmiths.Forge.Godot.Resources.Abilities;
|
||||
using Godot;
|
||||
using Movementtests.systems;
|
||||
|
||||
namespace Movementtests.managers;
|
||||
|
||||
[GlobalClass]
|
||||
public partial class WeaponInventory(
|
||||
ForgeAbilityBehavior[] onWeaponStartedFlyingAbilities,
|
||||
ForgeAbilityBehavior[] onWeaponFlyingTickAbilities,
|
||||
ForgeAbilityBehavior[] onWeaponStoppedFlyingAbilities,
|
||||
ForgeAbilityBehavior[] onWeaponStartedPlantedAbilities,
|
||||
ForgeAbilityBehavior[] onWeaponPlantedTickAbilities,
|
||||
ForgeAbilityBehavior[] onWeaponStoppedPlantedAbilities
|
||||
) : Resource
|
||||
{
|
||||
[ExportGroup("Flying abilities")]
|
||||
[Export]
|
||||
public ForgeAbilityBehavior[] OnWeaponStartedFlyingAbilities { get; set; } = onWeaponStartedFlyingAbilities;
|
||||
[Export]
|
||||
public ForgeAbilityBehavior[] OnWeaponFlyingTickAbilities { get; set; } = onWeaponFlyingTickAbilities;
|
||||
[Export]
|
||||
public ForgeAbilityBehavior[] OnWeaponStoppedFlyingAbilities { get; set; } = onWeaponStoppedFlyingAbilities;
|
||||
|
||||
[ExportGroup("Planted abilities")]
|
||||
[Export]
|
||||
public ForgeAbilityBehavior[] OnWeaponStartedPlantedAbilities { get; set; } = onWeaponStartedPlantedAbilities;
|
||||
[Export]
|
||||
public ForgeAbilityBehavior[] OnWeaponPlantedTickAbilities { get; set; } = onWeaponPlantedTickAbilities;
|
||||
[Export]
|
||||
public ForgeAbilityBehavior[] OnWeaponStoppedPlantedAbilities { get; set; } = onWeaponStoppedPlantedAbilities;
|
||||
|
||||
public WeaponInventory() : this([], [], [], [], [], [])
|
||||
{
|
||||
}
|
||||
|
||||
public Dictionary<WeaponSystem.WeaponEvent, ForgeAbilityBehavior[]> GetEventAbilitiesMap()
|
||||
{
|
||||
return new Dictionary<WeaponSystem.WeaponEvent, ForgeAbilityBehavior[]>
|
||||
{
|
||||
{ WeaponSystem.WeaponEvent.StartedFlying, OnWeaponStartedFlyingAbilities },
|
||||
{ WeaponSystem.WeaponEvent.StoppedFlying, OnWeaponStoppedFlyingAbilities },
|
||||
{ WeaponSystem.WeaponEvent.FlyingTick, OnWeaponFlyingTickAbilities },
|
||||
|
||||
{ WeaponSystem.WeaponEvent.StartedPlanted, OnWeaponStartedPlantedAbilities },
|
||||
{ WeaponSystem.WeaponEvent.StoppedPlanted, OnWeaponStoppedPlantedAbilities },
|
||||
{ WeaponSystem.WeaponEvent.PlantedTick, OnWeaponPlantedTickAbilities },
|
||||
};
|
||||
}
|
||||
}
|
||||
@@ -1 +0,0 @@
|
||||
uid://cgaahnfgxcrr6
|
||||
55
managers/InventoryManager.cs
Normal file
55
managers/InventoryManager.cs
Normal file
@@ -0,0 +1,55 @@
|
||||
using System.Collections.Generic;
|
||||
using Gamesmiths.Forge.Godot.Resources.Abilities;
|
||||
using Godot;
|
||||
using Movementtests.systems;
|
||||
|
||||
namespace Movementtests.managers;
|
||||
|
||||
public partial class WeaponEventAbilityData(WeaponSystem.WeaponEvent forEvent, Resource ability)
|
||||
: RefCounted
|
||||
{
|
||||
public WeaponSystem.WeaponEvent ForEvent { get; private set; } = forEvent;
|
||||
public Resource Ability { get; private set; } = ability;
|
||||
}
|
||||
|
||||
public partial class InventoryManager : Node
|
||||
{
|
||||
[Signal]
|
||||
public delegate void InventoryChangedEventHandler();
|
||||
|
||||
[Signal]
|
||||
public delegate void WeaponEventInventoryChangedEventHandler();
|
||||
[Signal]
|
||||
public delegate void WeaponEventAbilityAddedEventHandler(WeaponEventAbilityData data);
|
||||
[Signal]
|
||||
public delegate void WeaponEventAbilityRemovedEventHandler(WeaponEventAbilityData data);
|
||||
|
||||
public Dictionary<WeaponSystem.WeaponEvent, HashSet<Resource>> WeaponEventsInventory { get; } = [];
|
||||
|
||||
public override void _Ready()
|
||||
{
|
||||
WeaponEventsInventory[WeaponSystem.WeaponEvent.FlyingTick] = new HashSet<Resource>();
|
||||
WeaponEventsInventory[WeaponSystem.WeaponEvent.StartedFlying] = new HashSet<Resource>();
|
||||
WeaponEventsInventory[WeaponSystem.WeaponEvent.StoppedFlying] = new HashSet<Resource>();
|
||||
}
|
||||
|
||||
public void AddAbilityForWeaponEvent(WeaponSystem.WeaponEvent forEvent, ForgeAbilityBehavior abilityBehavior)
|
||||
{
|
||||
var inventoryForEvent = WeaponEventsInventory[forEvent];
|
||||
var addedAbilityToInventory = inventoryForEvent.Add(abilityBehavior);
|
||||
if (!addedAbilityToInventory) return;
|
||||
|
||||
EmitSignalWeaponEventInventoryChanged();
|
||||
EmitSignalWeaponEventAbilityAdded(new WeaponEventAbilityData(forEvent, abilityBehavior));
|
||||
}
|
||||
|
||||
public void RemoveAbilityForWeaponEvent(WeaponSystem.WeaponEvent forEvent, ForgeAbilityBehavior abilityBehavior)
|
||||
{
|
||||
var inventoryForEvent = WeaponEventsInventory[forEvent];
|
||||
var removedFromInventory = inventoryForEvent.Remove(abilityBehavior);
|
||||
if (!removedFromInventory) return;
|
||||
|
||||
EmitSignalWeaponEventInventoryChanged();
|
||||
EmitSignalWeaponEventAbilityRemoved(new WeaponEventAbilityData(forEvent, abilityBehavior));
|
||||
}
|
||||
}
|
||||
@@ -1,61 +0,0 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using Chickensoft.AutoInject;
|
||||
using Chickensoft.Introspection;
|
||||
using Godot;
|
||||
|
||||
namespace Movementtests.managers;
|
||||
|
||||
[GlobalClass, Meta(typeof(IAutoNode))]
|
||||
public partial class TokenManager : Node
|
||||
{
|
||||
public override void _Notification(int what) => this.Notify(what);
|
||||
|
||||
public record struct Token(ulong InstanceId, Action OnUse);
|
||||
|
||||
private Dictionary<ulong, Token> Tokens { get; set; } = [];
|
||||
public int TokenCount => Tokens.Count;
|
||||
|
||||
private Queue<ulong> RequestQueue { get; set; } = [];
|
||||
|
||||
public int MaxTokens { get; set;}
|
||||
|
||||
public void Initialize(int maxTokens)
|
||||
{
|
||||
MaxTokens = maxTokens;
|
||||
}
|
||||
|
||||
public Token? RequestToken(Node owner)
|
||||
{
|
||||
if (Tokens.ContainsKey(owner.GetInstanceId()))
|
||||
{
|
||||
GD.Print("Already has a token");
|
||||
return null; // Already has a token
|
||||
}
|
||||
if (TokenCount >= MaxTokens)
|
||||
{
|
||||
GD.Print($"Max tokens reached: {TokenCount}");
|
||||
return null; // Max tokens reached
|
||||
}
|
||||
if (!RequestQueue.Contains(owner.GetInstanceId()))
|
||||
{
|
||||
RequestQueue.Enqueue(owner.GetInstanceId());
|
||||
}
|
||||
if (RequestQueue.First() != owner.GetInstanceId())
|
||||
{
|
||||
GD.Print("Waiting its turn");
|
||||
return null; // Next in line is not the requester
|
||||
}
|
||||
|
||||
var ownerInstanceId = RequestQueue.Dequeue();
|
||||
var token = new Token(ownerInstanceId, () => UseToken(ownerInstanceId));
|
||||
Tokens.Add(token.InstanceId, token);
|
||||
return token;
|
||||
}
|
||||
|
||||
public void UseToken(ulong instanceId)
|
||||
{
|
||||
Tokens.Remove(instanceId);
|
||||
}
|
||||
}
|
||||
@@ -1 +0,0 @@
|
||||
uid://ckrhgyv5lv6xa
|
||||
@@ -1,22 +0,0 @@
|
||||
using Godot;
|
||||
|
||||
namespace Movementtests.managers;
|
||||
|
||||
[GlobalClass]
|
||||
public partial class EnemyDescription(PackedScene scene, EnemyDescription.EnemyType type, RMovement? movementOverride) : Resource
|
||||
{
|
||||
public enum EnemyType
|
||||
{
|
||||
Normal,
|
||||
Flying,
|
||||
Projectile,
|
||||
}
|
||||
|
||||
[Export(PropertyHint.NodeType)] public required PackedScene Scene { get; set; } = scene;
|
||||
|
||||
[Export] public required EnemyType Type { get; set; } = type;
|
||||
|
||||
[Export] public RMovement? MovementOverride { get; set; } = movementOverride;
|
||||
|
||||
public EnemyDescription() : this(ResourceLoader.Load<PackedScene>("uid://dxt0e2ugmttqq"), EnemyType.Normal, null) {}
|
||||
}
|
||||
@@ -1 +0,0 @@
|
||||
uid://rhdkfi7nuvu1
|
||||
@@ -1,13 +0,0 @@
|
||||
using System.Collections.Generic;
|
||||
using Godot;
|
||||
|
||||
namespace Movementtests.managers;
|
||||
|
||||
|
||||
[GlobalClass]
|
||||
public partial class SingleWave(EnemyDescription[] enemies) : Resource
|
||||
{
|
||||
[Export] public Godot.Collections.Dictionary<EnemyDescription, int> EnemiesToSpawn { get; set; } = [];
|
||||
|
||||
public SingleWave() : this([]) {}
|
||||
}
|
||||
@@ -1 +0,0 @@
|
||||
uid://cr8wog705ane6
|
||||
@@ -1,11 +0,0 @@
|
||||
using Godot;
|
||||
|
||||
namespace Movementtests.managers;
|
||||
|
||||
[GlobalClass]
|
||||
public partial class WaveContent(SingleWave[] waves) : Resource
|
||||
{
|
||||
[Export] public SingleWave[] Waves { get; set; } = waves;
|
||||
|
||||
public WaveContent() : this([]) {}
|
||||
}
|
||||
@@ -1 +0,0 @@
|
||||
uid://dijmv0wqc1xuv
|
||||
@@ -1,121 +0,0 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using Chickensoft.AutoInject;
|
||||
using Chickensoft.Collections;
|
||||
using Chickensoft.Introspection;
|
||||
using Godot;
|
||||
using Movementtests.tools;
|
||||
|
||||
namespace Movementtests.managers;
|
||||
|
||||
|
||||
[GlobalClass, Meta(typeof(IAutoNode))]
|
||||
public partial class WaveManager : Node
|
||||
{
|
||||
public override void _Notification(int what) => this.Notify(what);
|
||||
|
||||
public WaveContent WaveContent { get; set; }
|
||||
|
||||
public int CurrentWaveIndex { get; set; }
|
||||
public int CurrentWaveCount => WaveContent.Waves.Length;
|
||||
|
||||
public Godot.Collections.Dictionary<EnemyDescription, int> CurrentWave =>
|
||||
WaveContent.Waves[CurrentWaveIndex].EnemiesToSpawn;
|
||||
|
||||
public Dictionary<ulong, Enemy?> CurrentSpawnedEnemies { get; set; } = [];
|
||||
public Set<Spawner> SpawnersInUse { get; set; } = [];
|
||||
|
||||
public List<Spawner> Spawners { get; set; } = [];
|
||||
public void RegisterSpawner(Spawner spawner) => Spawners.Add(spawner);
|
||||
|
||||
public void InitializeFromResource(WaveContent waveContent) => WaveContent = waveContent;
|
||||
|
||||
public void StartWaves()
|
||||
{
|
||||
CurrentWaveIndex = 0;
|
||||
StartNextWave();
|
||||
}
|
||||
|
||||
public void StartNextWave()
|
||||
{
|
||||
if (CurrentWave.Count == 0)
|
||||
{
|
||||
GD.PrintErr("Wave has no enemies");
|
||||
return;
|
||||
}
|
||||
|
||||
if (Spawners.Count == 0)
|
||||
{
|
||||
GD.PrintErr("No spawners registered");
|
||||
return;
|
||||
}
|
||||
|
||||
SpawnEnemiesAsAvailable();
|
||||
}
|
||||
|
||||
public void SpawnEnemiesAsAvailable()
|
||||
{
|
||||
var randomizedSpawners = Spawners.ToArray();
|
||||
randomizedSpawners.Shuffle();
|
||||
|
||||
foreach (var spawner in randomizedSpawners)
|
||||
{
|
||||
if (SpawnersInUse.Contains(spawner)) continue;
|
||||
foreach (var (enemyDescription, numberRemaining) in CurrentWave)
|
||||
{
|
||||
if (numberRemaining <= 0) continue;
|
||||
if (!spawner.SupportedEnemyTypes.Contains(enemyDescription.Type)) continue;
|
||||
|
||||
var spawnedEnemy = spawner.SpawnEnemy(enemyDescription);
|
||||
if (spawnedEnemy == null) continue;
|
||||
|
||||
CurrentSpawnedEnemies[spawnedEnemy.GetInstanceId()] = spawnedEnemy;
|
||||
SpawnersInUse.Add(spawner);
|
||||
|
||||
spawnedEnemy.OnKilled += instanceId=> SpawnedEnemyDied(instanceId, spawner);
|
||||
|
||||
CurrentWave[enemyDescription]--;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// foreach (var (enemyDescription, numberRemaining) in CurrentWave)
|
||||
// {
|
||||
// if (numberRemaining <= 0) continue;
|
||||
// foreach (var spawner in randomizedSpawners)
|
||||
// {
|
||||
// if (!spawner.SupportedEnemyTypes.Contains(enemyDescription.Type)) continue;
|
||||
// if (SpawnersInUse.Contains(spawner)) continue;
|
||||
//
|
||||
// var spawnedEnemy = spawner.SpawnEnemy(enemyDescription);
|
||||
// if (spawnedEnemy == null) continue;
|
||||
//
|
||||
// CurrentSpawnedEnemies[spawnedEnemy.GetInstanceId()] = spawnedEnemy;
|
||||
// SpawnersInUse.Add(spawner);
|
||||
//
|
||||
// spawnedEnemy.OnKilled += instanceId=> SpawnedEnemyDied(instanceId, spawner);
|
||||
//
|
||||
// CurrentWave[enemyDescription]--;
|
||||
// break;
|
||||
// }
|
||||
// }
|
||||
|
||||
var remainingEnemiesToSpawn = CurrentWave.Values.Sum();
|
||||
if (remainingEnemiesToSpawn <= 0) return; // Wave is fully spawned
|
||||
GetTree().CreateTimer(1.0f).Timeout += SpawnEnemiesAsAvailable; // Call back the same function later to try and spawn the rest
|
||||
}
|
||||
|
||||
public void SpawnedEnemyDied(ulong instanceId, Spawner spawner)
|
||||
{
|
||||
CurrentSpawnedEnemies.Remove(instanceId);
|
||||
SpawnersInUse.Remove(spawner);
|
||||
if (CurrentSpawnedEnemies.Count == 0) FinishWave();
|
||||
}
|
||||
|
||||
public void FinishWave()
|
||||
{
|
||||
if (CurrentWaveIndex >= CurrentWaveCount) return; // All waves finished
|
||||
CurrentWaveIndex++;
|
||||
GetTree().CreateTimer(1.0f).Timeout += StartNextWave; // Start next wave in 1s
|
||||
}
|
||||
}
|
||||
@@ -1 +0,0 @@
|
||||
uid://cprjrwfk8d0vf
|
||||
@@ -1,12 +0,0 @@
|
||||
[gd_resource type="Resource" script_class="EnemyDescription" format=3 uid="uid://cfyafss8ncbhh"]
|
||||
|
||||
[ext_resource type="Resource" uid="uid://bwqjaom4k7rc3" path="res://scenes/enemies/flying_enemy/flying_enemy_movement.tres" id="1_hsb6g"]
|
||||
[ext_resource type="PackedScene" uid="uid://cmlud1hwkd6sv" path="res://scenes/enemies/flying_enemy/flying_enemy.tscn" id="1_yvgr4"]
|
||||
[ext_resource type="Script" uid="uid://rhdkfi7nuvu1" path="res://managers/Wave/EnemyDescription.cs" id="2_hsb6g"]
|
||||
|
||||
[resource]
|
||||
script = ExtResource("2_hsb6g")
|
||||
Scene = ExtResource("1_yvgr4")
|
||||
Type = 1
|
||||
MovementOverride = ExtResource("1_hsb6g")
|
||||
metadata/_custom_type_script = "uid://rhdkfi7nuvu1"
|
||||
@@ -1,9 +0,0 @@
|
||||
[gd_resource type="Resource" script_class="EnemyDescription" format=3 uid="uid://3clksludry8g"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://dxt0e2ugmttqq" path="res://scenes/enemies/grounded_enemy/grounded_enemy.tscn" id="1_wxdbf"]
|
||||
[ext_resource type="Script" uid="uid://rhdkfi7nuvu1" path="res://managers/Wave/EnemyDescription.cs" id="2_gk6ig"]
|
||||
|
||||
[resource]
|
||||
script = ExtResource("2_gk6ig")
|
||||
Scene = ExtResource("1_wxdbf")
|
||||
metadata/_custom_type_script = "uid://rhdkfi7nuvu1"
|
||||
@@ -1,17 +0,0 @@
|
||||
[gd_resource type="Resource" script_class="SingleWave" format=3 uid="uid://dm71u0ryn0w1o"]
|
||||
|
||||
[ext_resource type="Resource" uid="uid://cfyafss8ncbhh" path="res://managers/Wave/resources/flying_enemy_desc.tres" id="1_bcssi"]
|
||||
[ext_resource type="Script" uid="uid://rhdkfi7nuvu1" path="res://managers/Wave/EnemyDescription.cs" id="2_3r6ce"]
|
||||
[ext_resource type="Resource" uid="uid://3clksludry8g" path="res://managers/Wave/resources/grounded_enemy_desc.tres" id="2_mmsra"]
|
||||
[ext_resource type="Resource" uid="uid://lnturc3ibr5c" path="res://managers/Wave/resources/projectile_enemy_desc.tres" id="3_3r6ce"]
|
||||
[ext_resource type="Script" uid="uid://cr8wog705ane6" path="res://managers/Wave/SingleWave.cs" id="5_qckro"]
|
||||
|
||||
[resource]
|
||||
script = ExtResource("5_qckro")
|
||||
Enemies = Array[Object]([ExtResource("1_bcssi"), ExtResource("2_mmsra"), ExtResource("3_3r6ce")])
|
||||
EnemiesToSpawn = Dictionary[ExtResource("2_3r6ce"), int]({
|
||||
ExtResource("1_bcssi"): 1,
|
||||
ExtResource("2_mmsra"): 1,
|
||||
ExtResource("3_3r6ce"): 1
|
||||
})
|
||||
metadata/_custom_type_script = "uid://cr8wog705ane6"
|
||||
@@ -1,10 +0,0 @@
|
||||
[gd_resource type="Resource" script_class="EnemyDescription" format=3 uid="uid://lnturc3ibr5c"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://dx3y8sjftqk8f" path="res://scenes/enemies/projectile_enemy/projectile_enemy.tscn" id="1_2nepo"]
|
||||
[ext_resource type="Script" uid="uid://rhdkfi7nuvu1" path="res://managers/Wave/EnemyDescription.cs" id="2_bn1dh"]
|
||||
|
||||
[resource]
|
||||
script = ExtResource("2_bn1dh")
|
||||
Scene = ExtResource("1_2nepo")
|
||||
Type = 1
|
||||
metadata/_custom_type_script = "uid://rhdkfi7nuvu1"
|
||||
@@ -26,7 +26,11 @@
|
||||
[ext_resource type="PackedScene" uid="uid://dxt0e2ugmttqq" path="res://scenes/enemies/grounded_enemy/grounded_enemy.tscn" id="25_nrosh"]
|
||||
[ext_resource type="PackedScene" uid="uid://cmlud1hwkd6sv" path="res://scenes/enemies/flying_enemy/flying_enemy.tscn" id="25_x7fl1"]
|
||||
[ext_resource type="Script" uid="uid://dtpxijlnb2c5" path="res://scenes/components/movement/RMovement.cs" id="26_lu3yt"]
|
||||
[ext_resource type="Resource" uid="uid://dg1xbjhyhgnnk" path="res://scenes/enemies/flying_enemy/flying_enemy_health.tres" id="27_lgco8"]
|
||||
[ext_resource type="Resource" uid="uid://dgo65k2ceqfvy" path="res://scenes/enemies/flying_enemy/flying_enemy_damage.tres" id="28_51ivn"]
|
||||
[ext_resource type="Resource" uid="uid://bqq6uukbdfysr" path="res://scenes/enemies/grounded_enemy/grounded_enemy_movement.tres" id="30_3w3wd"]
|
||||
[ext_resource type="Resource" uid="uid://bohbojc68j7y1" path="res://scenes/enemies/grounded_enemy/grounded_enemy_health.tres" id="31_5hbxb"]
|
||||
[ext_resource type="Resource" uid="uid://otfc2snh8umc" path="res://scenes/enemies/grounded_enemy/grounded_enemy_damage.tres" id="32_hmdts"]
|
||||
|
||||
[sub_resource type="LabelSettings" id="LabelSettings_2k3fr"]
|
||||
font_size = 30
|
||||
@@ -378,9 +382,11 @@ shadow_enabled = true
|
||||
shadow_opacity = 0.95
|
||||
shadow_blur = 2.435
|
||||
|
||||
[node name="Player" parent="." unique_id=341554101 instance=ExtResource("1_2vsi6")]
|
||||
[node name="Player" parent="." unique_id=341554101 node_paths=PackedStringArray("TutorialWeaponTarget") instance=ExtResource("1_2vsi6")]
|
||||
transform = Transform3D(0.054514527, 0, -0.9985129, 0, 1, 0, 0.9985129, 0, 0.054514527, -6, 75.5, -13.5)
|
||||
collision_layer = 17
|
||||
TutorialWeaponTarget = NodePath("../PlacedTutorialWeapon/WeaponLocationTarget")
|
||||
TutorialDone = true
|
||||
AccelerationAir = 1.5
|
||||
|
||||
[node name="DebugLayer" type="CanvasLayer" parent="." unique_id=533965065]
|
||||
@@ -442,6 +448,8 @@ spot_angle_attenuation = 10.556052
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 19, 43, -111.5)
|
||||
EnemyToSpawn = ExtResource("25_x7fl1")
|
||||
MovementInputs = SubResource("Resource_pxspk")
|
||||
HealthInputs = ExtResource("27_lgco8")
|
||||
DamageInputs = ExtResource("28_51ivn")
|
||||
Target = NodePath("../Player")
|
||||
IsActiveOnStart = false
|
||||
|
||||
@@ -449,6 +457,8 @@ IsActiveOnStart = false
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 31, 7.5, -88)
|
||||
EnemyToSpawn = ExtResource("25_nrosh")
|
||||
MovementInputs = ExtResource("30_3w3wd")
|
||||
HealthInputs = ExtResource("31_5hbxb")
|
||||
DamageInputs = ExtResource("32_hmdts")
|
||||
Target = NodePath("../Player")
|
||||
IsActiveOnStart = false
|
||||
|
||||
|
||||
178
maps/_old/enemies.tscn
Normal file
178
maps/_old/enemies.tscn
Normal file
@@ -0,0 +1,178 @@
|
||||
[gd_scene format=3 uid="uid://q7uc1h2jpbd2"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://bei4nhkf8lwdo" path="res://scenes/player_controller/PlayerController.tscn" id="1_62kkh"]
|
||||
[ext_resource type="Material" uid="uid://31aulub2nqov" path="res://assets/materials/greybox/m_greybox.tres" id="2_3uydm"]
|
||||
[ext_resource type="Script" uid="uid://jitubgv6judn" path="res://scenes/components/damage/RDamage.cs" id="2_5fa36"]
|
||||
[ext_resource type="PackedScene" uid="uid://dxt0e2ugmttqq" path="res://scenes/enemies/grounded_enemy/grounded_enemy.tscn" id="3_3uydm"]
|
||||
[ext_resource type="PackedScene" uid="uid://cmlud1hwkd6sv" path="res://scenes/enemies/flying_enemy/flying_enemy.tscn" id="5_8fd2t"]
|
||||
[ext_resource type="Script" uid="uid://dtpxijlnb2c5" path="res://scenes/components/movement/RMovement.cs" id="5_ybosk"]
|
||||
[ext_resource type="PackedScene" uid="uid://c305mfrtumcyq" path="res://scenes/spawners/spawner.tscn" id="6_7m3bq"]
|
||||
[ext_resource type="Resource" uid="uid://bqq6uukbdfysr" path="res://scenes/enemies/grounded_enemy/grounded_enemy_movement.tres" id="7_caohq"]
|
||||
[ext_resource type="Script" uid="uid://baiapod3csndf" path="res://scenes/components/health/RHealth.cs" id="9_2e4ci"]
|
||||
[ext_resource type="Resource" uid="uid://otfc2snh8umc" path="res://scenes/enemies/grounded_enemy/grounded_enemy_damage.tres" id="9_dmw1t"]
|
||||
[ext_resource type="Resource" uid="uid://dgo65k2ceqfvy" path="res://scenes/enemies/flying_enemy/flying_enemy_damage.tres" id="9_gp7s3"]
|
||||
[ext_resource type="Resource" uid="uid://bwqjaom4k7rc3" path="res://scenes/enemies/flying_enemy/flying_enemy_movement.tres" id="10_spw1u"]
|
||||
[ext_resource type="Resource" uid="uid://dg1xbjhyhgnnk" path="res://scenes/enemies/flying_enemy/flying_enemy_health.tres" id="11_2e4ci"]
|
||||
[ext_resource type="PackedScene" uid="uid://qup00a7x2sji" path="res://scenes/fixed_dash_target/fixed_dashthrough_target.tscn" id="15_5fa36"]
|
||||
|
||||
[sub_resource type="Resource" id="Resource_1hrkh"]
|
||||
script = ExtResource("2_5fa36")
|
||||
DamageDealt = 1.0
|
||||
metadata/_custom_type_script = "uid://jitubgv6judn"
|
||||
|
||||
[sub_resource type="ProceduralSkyMaterial" id="ProceduralSkyMaterial_0xm2m"]
|
||||
sky_horizon_color = Color(0.662243, 0.671743, 0.686743, 1)
|
||||
ground_horizon_color = Color(0.662243, 0.671743, 0.686743, 1)
|
||||
|
||||
[sub_resource type="Sky" id="Sky_h2yge"]
|
||||
sky_material = SubResource("ProceduralSkyMaterial_0xm2m")
|
||||
|
||||
[sub_resource type="Environment" id="Environment_1bvp3"]
|
||||
background_mode = 2
|
||||
sky = SubResource("Sky_h2yge")
|
||||
ambient_light_source = 2
|
||||
ambient_light_color = Color(0.576076, 0.459788, 0.652401, 1)
|
||||
reflected_light_source = 2
|
||||
tonemap_mode = 4
|
||||
tonemap_exposure = 1.32
|
||||
ssao_enabled = true
|
||||
ssao_radius = 3.61
|
||||
ssil_enabled = true
|
||||
ssil_radius = 8.4
|
||||
sdfgi_use_occlusion = true
|
||||
glow_enabled = true
|
||||
|
||||
[sub_resource type="Resource" id="Resource_5fa36"]
|
||||
script = ExtResource("5_ybosk")
|
||||
GravityModifier = 5.0
|
||||
metadata/_custom_type_script = "uid://dtpxijlnb2c5"
|
||||
|
||||
[sub_resource type="Resource" id="Resource_ybosk"]
|
||||
script = ExtResource("9_2e4ci")
|
||||
StartingHealth = 1.0
|
||||
metadata/_custom_type_script = "uid://baiapod3csndf"
|
||||
|
||||
[node name="Main" type="Node3D" unique_id=2140535950]
|
||||
|
||||
[node name="Player" parent="." unique_id=809599523 instance=ExtResource("1_62kkh")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 7.5)
|
||||
TutorialDone = true
|
||||
RDamage = SubResource("Resource_1hrkh")
|
||||
|
||||
[node name="WorldEnvironment" type="WorldEnvironment" parent="." unique_id=2082209843]
|
||||
environment = SubResource("Environment_1bvp3")
|
||||
|
||||
[node name="DirectionalLight3D" type="DirectionalLight3D" parent="." unique_id=63930954]
|
||||
transform = Transform3D(-0.772218, 0.611111, 0.173844, 0.0446935, -0.220691, 0.974319, 0.633783, 0.760157, 0.143109, 0, 0, 0)
|
||||
shadow_enabled = true
|
||||
|
||||
[node name="Greybox" type="CSGCombiner3D" parent="." unique_id=1207469789]
|
||||
use_collision = true
|
||||
collision_layer = 256
|
||||
collision_mask = 65553
|
||||
|
||||
[node name="CSGBox3D" type="CSGBox3D" parent="Greybox" unique_id=319978745]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.096, -0.5, -46.329)
|
||||
use_collision = true
|
||||
size = Vector3(100, 1, 190.741)
|
||||
material = ExtResource("2_3uydm")
|
||||
|
||||
[node name="CSGBox3D2" type="CSGBox3D" parent="Greybox" unique_id=1919989912]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -21.346, 4.5, 2.7915)
|
||||
use_collision = true
|
||||
size = Vector3(6.5, 11, 5.5)
|
||||
material = ExtResource("2_3uydm")
|
||||
|
||||
[node name="CSGBox3D6" type="CSGBox3D" parent="Greybox" unique_id=1213152660]
|
||||
transform = Transform3D(0.70710677, 0, -0.70710677, 0, 1, 0, 0.70710677, 0, 0.70710677, -15.846001, 2.75, 2.0415)
|
||||
use_collision = true
|
||||
size = Vector3(6.5, 7.5, 11)
|
||||
material = ExtResource("2_3uydm")
|
||||
|
||||
[node name="CSGBox3D7" type="CSGBox3D" parent="Greybox" unique_id=1851111034]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -10.346001, 1, 1.0415001)
|
||||
use_collision = true
|
||||
size = Vector3(6.5, 4, 17)
|
||||
material = ExtResource("2_3uydm")
|
||||
|
||||
[node name="CSGBox3D10" type="CSGBox3D" parent="Greybox" unique_id=50441196]
|
||||
transform = Transform3D(1, 0, 0, 0, 0.9659258, 0.25881904, 0, -0.25881904, 0.9659258, 13.653999, 0.9705714, -5.336278)
|
||||
use_collision = true
|
||||
size = Vector3(6.5, 4, 24.5)
|
||||
material = ExtResource("2_3uydm")
|
||||
|
||||
[node name="CSGBox3D8" type="CSGBox3D" parent="Greybox" unique_id=660741680]
|
||||
transform = Transform3D(0.81915206, 0, 0.57357645, 0, 1, 0, -0.57357645, 0, 0.81915206, -7.3460007, 0, -3.9585)
|
||||
use_collision = true
|
||||
size = Vector3(6.5, 4, 17)
|
||||
material = ExtResource("2_3uydm")
|
||||
|
||||
[node name="CSGBox3D3" type="CSGBox3D" parent="Greybox" unique_id=994335188]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 18.154, 4.5, 2.7915)
|
||||
use_collision = true
|
||||
size = Vector3(6.5, 11, 5.5)
|
||||
material = ExtResource("2_3uydm")
|
||||
|
||||
[node name="CSGBox3D9" type="CSGBox3D" parent="Greybox" unique_id=377955376]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 50.154, 0, -20.4585)
|
||||
use_collision = true
|
||||
size = Vector3(6.5, 2, 116)
|
||||
material = ExtResource("2_3uydm")
|
||||
|
||||
[node name="CSGBox3D4" type="CSGBox3D" parent="Greybox" unique_id=1145091341]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 18.154, 4.5, -14.2085)
|
||||
use_collision = true
|
||||
size = Vector3(6.5, 11, 5.5)
|
||||
material = ExtResource("2_3uydm")
|
||||
|
||||
[node name="CSGBox3D5" type="CSGBox3D" parent="Greybox" unique_id=53153206]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.8460007, 4.5, 17.7915)
|
||||
use_collision = true
|
||||
size = Vector3(6.5, 11, 5.5)
|
||||
material = ExtResource("2_3uydm")
|
||||
|
||||
[node name="FixedDashthroughTarget" parent="." unique_id=1206948786 instance=ExtResource("15_5fa36")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 9, 3.5, 2.5)
|
||||
|
||||
[node name="Enemy" parent="." unique_id=935342749 node_paths=PackedStringArray("Target") instance=ExtResource("3_3uydm")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 13.5, 2.5, -8.336809)
|
||||
Target = NodePath("../Player")
|
||||
RMovement = SubResource("Resource_5fa36")
|
||||
|
||||
[node name="Enemy2" parent="." unique_id=1014680385 node_paths=PackedStringArray("Target") instance=ExtResource("3_3uydm")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 13, 0, -17.33681)
|
||||
Target = NodePath("../Player")
|
||||
RMovement = SubResource("Resource_5fa36")
|
||||
|
||||
[node name="Enemy3" parent="." unique_id=236903306 node_paths=PackedStringArray("Target") instance=ExtResource("3_3uydm")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 14, 4, -3.3368092)
|
||||
Target = NodePath("../Player")
|
||||
RMovement = SubResource("Resource_5fa36")
|
||||
|
||||
[node name="FlyingEnemy" parent="." unique_id=1135200290 node_paths=PackedStringArray("Target") instance=ExtResource("5_8fd2t")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 8, 7, -16)
|
||||
Target = NodePath("../Player")
|
||||
RMovement = SubResource("Resource_5fa36")
|
||||
|
||||
[node name="FlyingEnemy2" parent="." unique_id=1853592183 node_paths=PackedStringArray("Target") instance=ExtResource("5_8fd2t")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 10, 7, -16)
|
||||
Target = NodePath("../Player")
|
||||
RMovement = SubResource("Resource_5fa36")
|
||||
|
||||
[node name="GroundedSpawner" parent="." unique_id=140494238 node_paths=PackedStringArray("Target") instance=ExtResource("6_7m3bq")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 12, 2.5, -15)
|
||||
EnemyToSpawn = ExtResource("3_3uydm")
|
||||
MovementInputs = ExtResource("7_caohq")
|
||||
HealthInputs = SubResource("Resource_ybosk")
|
||||
DamageInputs = ExtResource("9_dmw1t")
|
||||
Target = NodePath("../Player")
|
||||
IsActiveOnStart = false
|
||||
|
||||
[node name="FlyingSpawner" parent="." unique_id=252188747 node_paths=PackedStringArray("Target") instance=ExtResource("6_7m3bq")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 18, 11, -14)
|
||||
EnemyToSpawn = ExtResource("5_8fd2t")
|
||||
MovementInputs = ExtResource("10_spw1u")
|
||||
HealthInputs = ExtResource("11_2e4ci")
|
||||
DamageInputs = ExtResource("9_gp7s3")
|
||||
Target = NodePath("../Player")
|
||||
IsActiveOnStart = false
|
||||
407
maps/_old/main.tscn
Normal file
407
maps/_old/main.tscn
Normal file
@@ -0,0 +1,407 @@
|
||||
[gd_scene format=3 uid="uid://cxbskue0lj2gv"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://bei4nhkf8lwdo" path="res://scenes/player_controller/PlayerController.tscn" id="1_ig7tw"]
|
||||
[ext_resource type="PackedScene" uid="uid://dkr80d2pi0d41" path="res://addons/guide/debugger/guide_debugger.tscn" id="2_0xm2m"]
|
||||
[ext_resource type="Material" uid="uid://31aulub2nqov" path="res://assets/materials/greybox/m_greybox.tres" id="3_h2yge"]
|
||||
|
||||
[sub_resource type="ProceduralSkyMaterial" id="ProceduralSkyMaterial_0xm2m"]
|
||||
sky_horizon_color = Color(0.662243, 0.671743, 0.686743, 1)
|
||||
ground_horizon_color = Color(0.662243, 0.671743, 0.686743, 1)
|
||||
|
||||
[sub_resource type="Sky" id="Sky_h2yge"]
|
||||
sky_material = SubResource("ProceduralSkyMaterial_0xm2m")
|
||||
|
||||
[sub_resource type="Environment" id="Environment_1bvp3"]
|
||||
background_mode = 2
|
||||
sky = SubResource("Sky_h2yge")
|
||||
ambient_light_source = 2
|
||||
ambient_light_color = Color(0.576076, 0.459788, 0.652401, 1)
|
||||
reflected_light_source = 2
|
||||
tonemap_mode = 4
|
||||
tonemap_exposure = 1.32
|
||||
ssao_enabled = true
|
||||
ssao_radius = 3.61
|
||||
ssil_enabled = true
|
||||
ssil_radius = 8.4
|
||||
sdfgi_use_occlusion = true
|
||||
glow_enabled = true
|
||||
|
||||
[node name="Main" type="Node3D" unique_id=985886321]
|
||||
|
||||
[node name="Player" parent="." unique_id=376011014 instance=ExtResource("1_ig7tw")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.7981, 1.6118, 39.3006)
|
||||
TutorialDone = true
|
||||
|
||||
[node name="WorldEnvironment" type="WorldEnvironment" parent="." unique_id=1240471357]
|
||||
environment = SubResource("Environment_1bvp3")
|
||||
|
||||
[node name="DirectionalLight3D" type="DirectionalLight3D" parent="." unique_id=346312364]
|
||||
transform = Transform3D(-0.772218, 0.611111, 0.173844, 0.0446935, -0.220691, 0.974319, 0.633783, 0.760157, 0.143109, 0, 0, 0)
|
||||
shadow_enabled = true
|
||||
|
||||
[node name="DebugLayer" type="CanvasLayer" parent="." unique_id=17611482]
|
||||
|
||||
[node name="GuideDebugger" parent="DebugLayer" unique_id=1527386667 instance=ExtResource("2_0xm2m")]
|
||||
visible = false
|
||||
|
||||
[node name="Greybox" type="CSGCombiner3D" parent="." unique_id=202319879]
|
||||
use_collision = true
|
||||
collision_layer = 3
|
||||
collision_mask = 5
|
||||
|
||||
[node name="CSGBox3D" type="CSGBox3D" parent="Greybox" unique_id=973340000]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.09619, -0.472656, -46.3293)
|
||||
use_collision = true
|
||||
size = Vector3(100, 1, 190.741)
|
||||
material = ExtResource("3_h2yge")
|
||||
|
||||
[node name="CSGBox3D2" type="CSGBox3D" parent="Greybox" unique_id=233983464]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -22, 5, 11.0613)
|
||||
use_collision = true
|
||||
size = Vector3(10, 10, 57.8774)
|
||||
material = ExtResource("3_h2yge")
|
||||
|
||||
[node name="CSGBox3D19" type="CSGBox3D" parent="Greybox" unique_id=964201148]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -20.5, 8.25323, -39.2813)
|
||||
use_collision = true
|
||||
size = Vector3(13, 16.5065, 47)
|
||||
material = ExtResource("3_h2yge")
|
||||
|
||||
[node name="CSGBox3D30" type="CSGBox3D" parent="Greybox" unique_id=44194028]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -22, 34.3, -33.2813)
|
||||
use_collision = true
|
||||
size = Vector3(10, 2, 35)
|
||||
material = ExtResource("3_h2yge")
|
||||
|
||||
[node name="CSGBox3D31" type="CSGBox3D" parent="Greybox" unique_id=129657386]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 12.5, 26.3, -47.4313)
|
||||
use_collision = true
|
||||
size = Vector3(79, 2, 7.3)
|
||||
material = ExtResource("3_h2yge")
|
||||
|
||||
[node name="CSGBox3D33" type="CSGBox3D" parent="Greybox" unique_id=1195124026]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -12.5, 15.3, -47.4313)
|
||||
use_collision = true
|
||||
size = Vector3(29, 2, 7.3)
|
||||
material = ExtResource("3_h2yge")
|
||||
|
||||
[node name="CSGBox3D35" type="CSGBox3D" parent="Greybox" unique_id=1660033609]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -7.5, 20.8, -44.2813)
|
||||
use_collision = true
|
||||
size = Vector3(19, 13, 1)
|
||||
material = ExtResource("3_h2yge")
|
||||
|
||||
[node name="CSGBox3D36" type="CSGBox3D" parent="Greybox" unique_id=1494958881]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -7.5, 20.8, -51.2813)
|
||||
use_collision = true
|
||||
size = Vector3(19, 13, 1)
|
||||
material = ExtResource("3_h2yge")
|
||||
|
||||
[node name="CSGBox3D34" type="CSGBox3D" parent="Greybox" unique_id=608991527]
|
||||
transform = Transform3D(0.866025, 0.5, 0, -0.5, 0.866025, 0, 0, 0, 1, 17.0311, 6.45, -47.4313)
|
||||
use_collision = true
|
||||
size = Vector3(36, 2, 7.3)
|
||||
material = ExtResource("3_h2yge")
|
||||
|
||||
[node name="CSGBox3D32" type="CSGBox3D" parent="Greybox" unique_id=1803245548]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -21, 30.3, -47.4313)
|
||||
use_collision = true
|
||||
size = Vector3(12, 10, 7.3)
|
||||
material = ExtResource("3_h2yge")
|
||||
|
||||
[node name="Stairs" type="CSGCombiner3D" parent="Greybox" unique_id=1805647048]
|
||||
use_collision = true
|
||||
|
||||
[node name="CSGBox3D5" type="CSGBox3D" parent="Greybox/Stairs" unique_id=961319320]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -16.0294, 0.5, 32.891)
|
||||
size = Vector3(3, 1, 3)
|
||||
material = ExtResource("3_h2yge")
|
||||
|
||||
[node name="CSGBox3D6" type="CSGBox3D" parent="Greybox/Stairs" unique_id=1360044459]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -16.029, 1, 29.905)
|
||||
size = Vector3(3, 2, 3)
|
||||
material = ExtResource("3_h2yge")
|
||||
|
||||
[node name="CSGBox3D7" type="CSGBox3D" parent="Greybox/Stairs" unique_id=1499624262]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -16.029, 1.5, 26.9138)
|
||||
size = Vector3(3, 3, 3)
|
||||
material = ExtResource("3_h2yge")
|
||||
|
||||
[node name="CSGBox3D8" type="CSGBox3D" parent="Greybox/Stairs" unique_id=1412980197]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -16.029, 2, 23.9462)
|
||||
size = Vector3(3, 4, 3)
|
||||
material = ExtResource("3_h2yge")
|
||||
|
||||
[node name="CSGBox3D9" type="CSGBox3D" parent="Greybox/Stairs" unique_id=1310937492]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -16.029, 2.5, 20.975)
|
||||
size = Vector3(3, 5, 3)
|
||||
material = ExtResource("3_h2yge")
|
||||
|
||||
[node name="CSGBox3D10" type="CSGBox3D" parent="Greybox/Stairs" unique_id=2023609911]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -16.029, 3, 17.9825)
|
||||
size = Vector3(3, 6, 3)
|
||||
material = ExtResource("3_h2yge")
|
||||
|
||||
[node name="CSGBox3D11" type="CSGBox3D" parent="Greybox/Stairs" unique_id=393957727]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -16.029, 3.5, 15)
|
||||
size = Vector3(3, 7, 3)
|
||||
material = ExtResource("3_h2yge")
|
||||
|
||||
[node name="CSGBox3D12" type="CSGBox3D" parent="Greybox/Stairs" unique_id=1704667554]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -16.029, 4, 12.018)
|
||||
size = Vector3(3, 8, 3)
|
||||
material = ExtResource("3_h2yge")
|
||||
|
||||
[node name="CSGBox3D13" type="CSGBox3D" parent="Greybox/Stairs" unique_id=1710300338]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -16.029, 4.5, 9.04904)
|
||||
size = Vector3(3, 9, 3)
|
||||
material = ExtResource("3_h2yge")
|
||||
|
||||
[node name="CSGBox3D3" type="CSGBox3D" parent="Greybox" unique_id=1317342293]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3.0524, 10.795, 6.27246)
|
||||
use_collision = true
|
||||
size = Vector3(39.9961, 21.6211, 2.62695)
|
||||
material = ExtResource("3_h2yge")
|
||||
|
||||
[node name="CSGCylinder3D" type="CSGCylinder3D" parent="Greybox/CSGBox3D3" unique_id=81700125]
|
||||
transform = Transform3D(4.2, 0, 0, 0, -6.11959e-08, -7, 0, 1.4, -3.0598e-07, 8.96759, -10.8105, -0.293446)
|
||||
operation = 2
|
||||
radius = 1.0
|
||||
height = 5.0
|
||||
sides = 40
|
||||
|
||||
[node name="CSGCylinder3D2" type="CSGCylinder3D" parent="Greybox/CSGBox3D3" unique_id=1626645027]
|
||||
transform = Transform3D(4.2, 0, 0, 0, -6.11959e-08, -7, 0, 1.4, -3.0598e-07, -11.9615, -10.8105, -0.293446)
|
||||
operation = 2
|
||||
radius = 1.0
|
||||
height = 5.0
|
||||
sides = 40
|
||||
|
||||
[node name="CSGBox3D4" type="CSGBox3D" parent="Greybox" unique_id=860496794]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 35.9586, 5, 15.3133)
|
||||
use_collision = true
|
||||
size = Vector3(25.9171, 10, 66.0572)
|
||||
material = ExtResource("3_h2yge")
|
||||
|
||||
[node name="CSGBox3D24" type="CSGBox3D" parent="Greybox/CSGBox3D4" unique_id=953680138]
|
||||
transform = Transform3D(-4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, -4.4306, -1.45655, 25.6867)
|
||||
operation = 2
|
||||
size = Vector3(12, 7, 35)
|
||||
material = ExtResource("3_h2yge")
|
||||
|
||||
[node name="CSGBox3D25" type="CSGBox3D" parent="Greybox/CSGBox3D4" unique_id=647976782]
|
||||
transform = Transform3D(-1, 0, 8.74228e-08, 0, 1, 0, -8.74228e-08, 0, -1, 9.0694, -1.45655, 7.6867)
|
||||
operation = 2
|
||||
size = Vector3(12, 7, 30)
|
||||
material = ExtResource("3_h2yge")
|
||||
|
||||
[node name="CSGBox3D26" type="CSGBox3D" parent="Greybox/CSGBox3D4" unique_id=981384844]
|
||||
transform = Transform3D(-1, 0, 8.74228e-08, 0, 1, 0, -8.74228e-08, 0, -1, 9.0694, 1.04345, -3.3133)
|
||||
operation = 2
|
||||
size = Vector3(12, 12, 8)
|
||||
material = ExtResource("3_h2yge")
|
||||
|
||||
[node name="CSGBox3D9" type="CSGBox3D" parent="Greybox" unique_id=2097153680]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 21.5038, 2.5, 7.30957)
|
||||
size = Vector3(3, 5, 25.3809)
|
||||
material = ExtResource("3_h2yge")
|
||||
|
||||
[node name="CSGBox3D10" type="CSGBox3D" parent="Greybox" unique_id=760209768]
|
||||
transform = Transform3D(-4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, 11.517, 1.29345, 21.5)
|
||||
size = Vector3(3, 2.5, 22.978)
|
||||
material = ExtResource("3_h2yge")
|
||||
|
||||
[node name="CSGBox3D5" type="CSGBox3D" parent="Greybox" unique_id=2030989025]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.45774, 10.7885, -6.32539)
|
||||
use_collision = true
|
||||
size = Vector3(2.15405, 21.577, 22.6)
|
||||
material = ExtResource("3_h2yge")
|
||||
|
||||
[node name="CSGBox3D21" type="CSGBox3D" parent="Greybox/CSGBox3D5" unique_id=929527256]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.10074, 8.35729, -0.350719)
|
||||
operation = 2
|
||||
use_collision = true
|
||||
size = Vector3(9.25954, 5.10669, 7.561)
|
||||
material = ExtResource("3_h2yge")
|
||||
|
||||
[node name="CSGBox3D20" type="CSGBox3D" parent="Greybox" unique_id=1990392027]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -15.7766, 17.433, -31.0838)
|
||||
use_collision = true
|
||||
size = Vector3(2.15405, 35.9, 27)
|
||||
material = ExtResource("3_h2yge")
|
||||
|
||||
[node name="CSGBox3D37" type="CSGBox3D" parent="Greybox/CSGBox3D20" unique_id=200448590]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.174269, 10.3449, -0.91618)
|
||||
operation = 2
|
||||
use_collision = true
|
||||
size = Vector3(4, 4, 3)
|
||||
material = ExtResource("3_h2yge")
|
||||
|
||||
[node name="CSGBox3D25" type="CSGBox3D" parent="Greybox" unique_id=1913858984]
|
||||
transform = Transform3D(-4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, -3.02663, 27.983, -16.9838)
|
||||
use_collision = true
|
||||
size = Vector3(2.15405, 13, 52.3)
|
||||
material = ExtResource("3_h2yge")
|
||||
|
||||
[node name="CSGBox3D34" type="CSGBox3D" parent="Greybox/CSGBox3D25" unique_id=426380119]
|
||||
transform = Transform3D(-4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, -0.41618, -2.15506, -19.5757)
|
||||
operation = 2
|
||||
use_collision = true
|
||||
size = Vector3(3, 7, 6)
|
||||
material = ExtResource("3_h2yge")
|
||||
|
||||
[node name="CSGBox3D35" type="CSGBox3D" parent="Greybox/CSGBox3D25" unique_id=656184598]
|
||||
transform = Transform3D(-4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, -0.41618, -2.15506, -8.57573)
|
||||
operation = 2
|
||||
use_collision = true
|
||||
size = Vector3(3, 7, 6)
|
||||
material = ExtResource("3_h2yge")
|
||||
|
||||
[node name="CSGBox3D36" type="CSGBox3D" parent="Greybox/CSGBox3D25" unique_id=710213414]
|
||||
transform = Transform3D(-4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, -0.41618, -2.15506, 4.42427)
|
||||
operation = 2
|
||||
use_collision = true
|
||||
size = Vector3(3, 7, 6)
|
||||
material = ExtResource("3_h2yge")
|
||||
|
||||
[node name="CSGBox3D29" type="CSGBox3D" parent="Greybox" unique_id=1552229602]
|
||||
transform = Transform3D(-1, 0, 8.74228e-08, 0, 1, 0, -8.74228e-08, 0, -1, 21.9734, 27.983, -4.93377)
|
||||
use_collision = true
|
||||
size = Vector3(2.15405, 13, 25)
|
||||
material = ExtResource("3_h2yge")
|
||||
|
||||
[node name="CSGBox3D26" type="CSGBox3D" parent="Greybox" unique_id=742482926]
|
||||
transform = Transform3D(-4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, -3.07663, 27.983, 6.51623)
|
||||
use_collision = true
|
||||
size = Vector3(2.15405, 13, 52.2)
|
||||
material = ExtResource("3_h2yge")
|
||||
|
||||
[node name="CSGBox3D30" type="CSGBox3D" parent="Greybox/CSGBox3D26" unique_id=2034823641]
|
||||
transform = Transform3D(-4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, 1.08382, -0.65506, -19.6257)
|
||||
operation = 2
|
||||
use_collision = true
|
||||
size = Vector3(3, 4, 6)
|
||||
material = ExtResource("3_h2yge")
|
||||
|
||||
[node name="CSGBox3D31" type="CSGBox3D" parent="Greybox/CSGBox3D26" unique_id=219731987]
|
||||
transform = Transform3D(-4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, 1.08382, -0.65506, -8.62572)
|
||||
operation = 2
|
||||
use_collision = true
|
||||
size = Vector3(3, 4, 6)
|
||||
material = ExtResource("3_h2yge")
|
||||
|
||||
[node name="CSGBox3D32" type="CSGBox3D" parent="Greybox/CSGBox3D26" unique_id=122544263]
|
||||
transform = Transform3D(-4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, 1.08382, -0.65506, 3.37428)
|
||||
operation = 2
|
||||
use_collision = true
|
||||
size = Vector3(3, 4, 6)
|
||||
material = ExtResource("3_h2yge")
|
||||
|
||||
[node name="CSGBox3D33" type="CSGBox3D" parent="Greybox/CSGBox3D26" unique_id=983294595]
|
||||
transform = Transform3D(-4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, 1.08382, -2.15506, 18.8743)
|
||||
operation = 2
|
||||
use_collision = true
|
||||
size = Vector3(10, 7, 6)
|
||||
material = ExtResource("3_h2yge")
|
||||
|
||||
[node name="CSGBox3D6" type="CSGBox3D" parent="Greybox" unique_id=2039585908]
|
||||
transform = Transform3D(-4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, -7.80455, 10.8026, -16.7054)
|
||||
use_collision = true
|
||||
size = Vector3(1.9, 21.6052, 18.459)
|
||||
material = ExtResource("3_h2yge")
|
||||
|
||||
[node name="CSGBox3D7" type="CSGBox3D" parent="Greybox" unique_id=1704800656]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 45.6363, 5, -30.4887)
|
||||
use_collision = true
|
||||
size = Vector3(6.8864, 10, 40.8848)
|
||||
material = ExtResource("3_h2yge")
|
||||
|
||||
[node name="CSGBox3D8" type="CSGBox3D" parent="Greybox" unique_id=102084295]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 50.0149, 26.122, -0.963737)
|
||||
use_collision = true
|
||||
size = Vector3(2.14108, 52.2441, 99.9347)
|
||||
material = ExtResource("3_h2yge")
|
||||
|
||||
[node name="CSGBox3D11" type="CSGBox3D" parent="Greybox" unique_id=1645938429]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -28.1405, 26.122, -0.963737)
|
||||
use_collision = true
|
||||
size = Vector3(2.14108, 52.2441, 99.9347)
|
||||
material = ExtResource("3_h2yge")
|
||||
|
||||
[node name="CSGBox3D12" type="CSGBox3D" parent="Greybox" unique_id=2010255775]
|
||||
transform = Transform3D(-4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, -93.2643, 26.122, -49.9656)
|
||||
use_collision = true
|
||||
size = Vector3(2.14108, 52.2441, 99.9347)
|
||||
material = ExtResource("3_h2yge")
|
||||
|
||||
[node name="CSGBox3D13" type="CSGBox3D" parent="Greybox" unique_id=779512432]
|
||||
transform = Transform3D(-4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, 10.7529, 26.122, 49.3889)
|
||||
use_collision = true
|
||||
size = Vector3(2.14108, 52.2441, 99.9347)
|
||||
material = ExtResource("3_h2yge")
|
||||
|
||||
[node name="CSGBox3D14" type="CSGBox3D" parent="Greybox" unique_id=593545609]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -17.534, 10.8458, 27.1386)
|
||||
use_collision = true
|
||||
size = Vector3(1.10791, 1.71436, 25.7228)
|
||||
material = ExtResource("3_h2yge")
|
||||
|
||||
[node name="CSGBox3D21" type="CSGBox3D" parent="Greybox" unique_id=913202979]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 23.4606, 10.8458, -4.97476)
|
||||
use_collision = true
|
||||
size = Vector3(1.10791, 1.71436, 25.2857)
|
||||
material = ExtResource("3_h2yge")
|
||||
|
||||
[node name="CSGBox3D24" type="CSGBox3D" parent="Greybox" unique_id=1595738887]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 23.4606, 16.1886, -17.1176)
|
||||
use_collision = true
|
||||
size = Vector3(1.10791, 12.4, 1)
|
||||
material = ExtResource("3_h2yge")
|
||||
|
||||
[node name="CSGBox3D22" type="CSGBox3D" parent="Greybox" unique_id=100240267]
|
||||
transform = Transform3D(-4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, 36.3499, 10.8458, 7.02524)
|
||||
use_collision = true
|
||||
size = Vector3(1.10791, 1.71436, 28)
|
||||
material = ExtResource("3_h2yge")
|
||||
|
||||
[node name="CSGBox3D23" type="CSGBox3D" parent="Greybox" unique_id=1131367437]
|
||||
transform = Transform3D(-4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, 36.8499, 10.8458, -17.0748)
|
||||
use_collision = true
|
||||
size = Vector3(1.10791, 1.71436, 27)
|
||||
material = ExtResource("3_h2yge")
|
||||
|
||||
[node name="CSGBox3D27" type="CSGBox3D" parent="Greybox" unique_id=1865223494]
|
||||
transform = Transform3D(-4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, 4.19987, 23.1458, -23.0748)
|
||||
use_collision = true
|
||||
size = Vector3(1.10791, 1.71436, 37.7)
|
||||
material = ExtResource("3_h2yge")
|
||||
|
||||
[node name="CSGBox3D28" type="CSGBox3D" parent="Greybox" unique_id=1060380653]
|
||||
transform = Transform3D(-1, 0, 8.74228e-08, 0, 1, 0, -8.74228e-08, 0, -1, 22.5999, 23.1458, -20.2248)
|
||||
use_collision = true
|
||||
size = Vector3(1.10791, 1.71436, 6)
|
||||
material = ExtResource("3_h2yge")
|
||||
|
||||
[node name="CSGBox3D15" type="CSGBox3D" parent="Greybox" unique_id=1299247533]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 10.9058, 10.795, 47.0594)
|
||||
use_collision = true
|
||||
size = Vector3(76.2239, 21.6211, 2.62695)
|
||||
material = ExtResource("3_h2yge")
|
||||
|
||||
[node name="CSGBox3D16" type="CSGBox3D" parent="Greybox" unique_id=1365802849]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3.02149, 21.8279, -7.89995)
|
||||
use_collision = true
|
||||
size = Vector3(52.1412, 1, 31)
|
||||
material = ExtResource("3_h2yge")
|
||||
|
||||
[node name="CSGBox3D17" type="CSGBox3D" parent="Greybox" unique_id=2135806884]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3.02149, 34.8279, -5.19995)
|
||||
use_collision = true
|
||||
size = Vector3(52.1412, 1, 25.6)
|
||||
material = ExtResource("3_h2yge")
|
||||
|
||||
[node name="CSGBox3D18" type="CSGBox3D" parent="Greybox" unique_id=247653250]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -17.534, 10.7583, -4.19618)
|
||||
use_collision = true
|
||||
size = Vector3(1.10791, 1.71436, 23.4043)
|
||||
material = ExtResource("3_h2yge")
|
||||
915
maps/_old/metrics.tscn
Normal file
915
maps/_old/metrics.tscn
Normal file
@@ -0,0 +1,915 @@
|
||||
[gd_scene format=3 uid="uid://pk8ypa04qy6x"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://bei4nhkf8lwdo" path="res://scenes/player_controller/PlayerController.tscn" id="1_1s2y7"]
|
||||
[ext_resource type="PackedScene" uid="uid://dkr80d2pi0d41" path="res://addons/guide/debugger/guide_debugger.tscn" id="2_epx65"]
|
||||
[ext_resource type="Material" uid="uid://31aulub2nqov" path="res://assets/materials/greybox/m_greybox.tres" id="3_vvhq3"]
|
||||
|
||||
[sub_resource type="ProceduralSkyMaterial" id="ProceduralSkyMaterial_0xm2m"]
|
||||
sky_horizon_color = Color(0.662243, 0.671743, 0.686743, 1)
|
||||
ground_horizon_color = Color(0.662243, 0.671743, 0.686743, 1)
|
||||
|
||||
[sub_resource type="Sky" id="Sky_h2yge"]
|
||||
sky_material = SubResource("ProceduralSkyMaterial_0xm2m")
|
||||
|
||||
[sub_resource type="Environment" id="Environment_1bvp3"]
|
||||
background_mode = 2
|
||||
sky = SubResource("Sky_h2yge")
|
||||
ambient_light_source = 2
|
||||
ambient_light_color = Color(0.576076, 0.459788, 0.652401, 1)
|
||||
reflected_light_source = 2
|
||||
tonemap_mode = 4
|
||||
tonemap_exposure = 1.32
|
||||
ssao_enabled = true
|
||||
ssao_radius = 3.61
|
||||
ssil_enabled = true
|
||||
ssil_radius = 8.4
|
||||
sdfgi_use_occlusion = true
|
||||
glow_enabled = true
|
||||
|
||||
[node name="Main" type="Node3D" unique_id=1886692589]
|
||||
|
||||
[node name="Player" parent="." unique_id=1926439269 instance=ExtResource("1_1s2y7")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1.5)
|
||||
TutorialDone = true
|
||||
|
||||
[node name="WorldEnvironment" type="WorldEnvironment" parent="." unique_id=1918922070]
|
||||
environment = SubResource("Environment_1bvp3")
|
||||
|
||||
[node name="DirectionalLight3D" type="DirectionalLight3D" parent="." unique_id=1220382102]
|
||||
transform = Transform3D(-0.772218, 0.611111, 0.173844, 0.0446935, -0.220691, 0.974319, 0.633783, 0.760157, 0.143109, 0, 0, 0)
|
||||
shadow_enabled = true
|
||||
|
||||
[node name="DebugLayer" type="CanvasLayer" parent="." unique_id=2035564069]
|
||||
|
||||
[node name="GuideDebugger" parent="DebugLayer" unique_id=1346724862 instance=ExtResource("2_epx65")]
|
||||
visible = false
|
||||
|
||||
[node name="Greybox" type="CSGCombiner3D" parent="." unique_id=947987680]
|
||||
use_collision = true
|
||||
collision_layer = 256
|
||||
collision_mask = 65553
|
||||
|
||||
[node name="CSGBox3D" type="CSGBox3D" parent="Greybox" unique_id=1658565485]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.096, -0.5, -46.329)
|
||||
use_collision = true
|
||||
size = Vector3(100, 1, 190.741)
|
||||
material = ExtResource("3_vvhq3")
|
||||
|
||||
[node name="RunningTrack" type="CSGCombiner3D" parent="Greybox" unique_id=878428333]
|
||||
|
||||
[node name="CSGBox3D2" type="CSGBox3D" parent="Greybox/RunningTrack" unique_id=1524612867]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0)
|
||||
use_collision = true
|
||||
size = Vector3(0.2, 2, 0.2)
|
||||
material = ExtResource("3_vvhq3")
|
||||
|
||||
[node name="CSGBox3D3" type="CSGBox3D" parent="Greybox/RunningTrack" unique_id=1343324188]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, -10)
|
||||
use_collision = true
|
||||
size = Vector3(0.2, 2, 0.2)
|
||||
material = ExtResource("3_vvhq3")
|
||||
|
||||
[node name="CSGBox3D4" type="CSGBox3D" parent="Greybox/RunningTrack" unique_id=2003839018]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, -20)
|
||||
use_collision = true
|
||||
size = Vector3(0.2, 2, 0.2)
|
||||
material = ExtResource("3_vvhq3")
|
||||
|
||||
[node name="CSGBox3D5" type="CSGBox3D" parent="Greybox/RunningTrack" unique_id=12532369]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, -30)
|
||||
use_collision = true
|
||||
size = Vector3(0.2, 2, 0.2)
|
||||
material = ExtResource("3_vvhq3")
|
||||
|
||||
[node name="CSGBox3D6" type="CSGBox3D" parent="Greybox/RunningTrack" unique_id=1528078611]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, -40)
|
||||
use_collision = true
|
||||
size = Vector3(0.2, 2, 0.2)
|
||||
material = ExtResource("3_vvhq3")
|
||||
|
||||
[node name="CSGBox3D7" type="CSGBox3D" parent="Greybox/RunningTrack" unique_id=1374413337]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, -50)
|
||||
use_collision = true
|
||||
size = Vector3(0.2, 2, 0.2)
|
||||
material = ExtResource("3_vvhq3")
|
||||
|
||||
[node name="CSGBox3D8" type="CSGBox3D" parent="Greybox/RunningTrack" unique_id=1756322621]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2, 1, 0)
|
||||
use_collision = true
|
||||
size = Vector3(0.2, 2, 0.2)
|
||||
material = ExtResource("3_vvhq3")
|
||||
|
||||
[node name="CSGBox3D9" type="CSGBox3D" parent="Greybox/RunningTrack" unique_id=991157972]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2, 1, -10)
|
||||
use_collision = true
|
||||
size = Vector3(0.2, 2, 0.2)
|
||||
material = ExtResource("3_vvhq3")
|
||||
|
||||
[node name="CSGBox3D10" type="CSGBox3D" parent="Greybox/RunningTrack" unique_id=1421677964]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2, 1, -20)
|
||||
use_collision = true
|
||||
size = Vector3(0.2, 2, 0.2)
|
||||
material = ExtResource("3_vvhq3")
|
||||
|
||||
[node name="CSGBox3D11" type="CSGBox3D" parent="Greybox/RunningTrack" unique_id=147727252]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2, 1, -30)
|
||||
use_collision = true
|
||||
size = Vector3(0.2, 2, 0.2)
|
||||
material = ExtResource("3_vvhq3")
|
||||
|
||||
[node name="CSGBox3D12" type="CSGBox3D" parent="Greybox/RunningTrack" unique_id=190006939]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2, 1, -40)
|
||||
use_collision = true
|
||||
size = Vector3(0.2, 2, 0.2)
|
||||
material = ExtResource("3_vvhq3")
|
||||
|
||||
[node name="CSGBox3D13" type="CSGBox3D" parent="Greybox/RunningTrack" unique_id=397218140]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2, 1, -50)
|
||||
use_collision = true
|
||||
size = Vector3(0.2, 2, 0.2)
|
||||
material = ExtResource("3_vvhq3")
|
||||
|
||||
[node name="Label3D" type="Label3D" parent="Greybox/RunningTrack" unique_id=2077484418]
|
||||
transform = Transform3D(5, 0, 0, 0, -2.18557e-07, 5, 0, -5, -2.18557e-07, 1, 0.1, -9.5)
|
||||
text = "10m"
|
||||
|
||||
[node name="Label3D6" type="Label3D" parent="Greybox/RunningTrack" unique_id=157546019]
|
||||
transform = Transform3D(5, 0, 0, 0, -2.18557e-07, 5, 0, -5, -2.18557e-07, 27.5, 0.1, 1)
|
||||
text = "10deg
|
||||
"
|
||||
|
||||
[node name="Label3D7" type="Label3D" parent="Greybox/RunningTrack" unique_id=1322657783]
|
||||
transform = Transform3D(5, 0, 0, 0, -2.18557e-07, 5, 0, -5, -2.18557e-07, 30.5, 0.1, 1)
|
||||
text = "20deg
|
||||
"
|
||||
|
||||
[node name="Label3D8" type="Label3D" parent="Greybox/RunningTrack" unique_id=2087446523]
|
||||
transform = Transform3D(5, 0, 0, 0, -2.18557e-07, 5, 0, -5, -2.18557e-07, 33.5, 0.1, 1)
|
||||
text = "30deg
|
||||
"
|
||||
|
||||
[node name="Label3D2" type="Label3D" parent="Greybox/RunningTrack" unique_id=631102816]
|
||||
transform = Transform3D(5, 0, 0, 0, -2.18557e-07, 5, 0, -5, -2.18557e-07, 1, 0.1, -19.5)
|
||||
text = "20m"
|
||||
|
||||
[node name="Label3D3" type="Label3D" parent="Greybox/RunningTrack" unique_id=1135391266]
|
||||
transform = Transform3D(5, 0, 0, 0, -2.18557e-07, 5, 0, -5, -2.18557e-07, 1, 0.1, -29.5)
|
||||
text = "30m"
|
||||
|
||||
[node name="Label3D4" type="Label3D" parent="Greybox/RunningTrack" unique_id=646298813]
|
||||
transform = Transform3D(5, 0, 0, 0, -2.18557e-07, 5, 0, -5, -2.18557e-07, 1, 0.1, -39.5)
|
||||
text = "40m"
|
||||
|
||||
[node name="Label3D5" type="Label3D" parent="Greybox/RunningTrack" unique_id=2110989391]
|
||||
transform = Transform3D(5, 0, 0, 0, -2.18557e-07, 5, 0, -5, -2.18557e-07, 1, 0.1, -49)
|
||||
text = "50m"
|
||||
|
||||
[node name="JumpHeights" type="CSGCombiner3D" parent="Greybox" unique_id=346821943]
|
||||
|
||||
[node name="Label3D6" type="Label3D" parent="Greybox/JumpHeights" unique_id=210969284]
|
||||
transform = Transform3D(-2.18557e-07, -5, -2.18557e-07, 0, -2.18557e-07, 5, -5, 2.18557e-07, 9.55343e-15, -7, 0.1, -1.5)
|
||||
text = "0.5m"
|
||||
|
||||
[node name="Label3D7" type="Label3D" parent="Greybox/JumpHeights" unique_id=1563882963]
|
||||
transform = Transform3D(-2.18557e-07, -5, -2.18557e-07, 0, -2.18557e-07, 5, -5, 2.18557e-07, 9.55343e-15, -7, 0.1, -6.5)
|
||||
text = "1m"
|
||||
|
||||
[node name="Label3D22" type="Label3D" parent="Greybox/JumpHeights" unique_id=1538473923]
|
||||
transform = Transform3D(-2.1855689e-07, 5, 2.18557e-07, 0, -2.18557e-07, 5, 5, 2.1855689e-07, 9.55343e-15, -28.5, 0.1, 1)
|
||||
text = "1.5m"
|
||||
|
||||
[node name="Label3D23" type="Label3D" parent="Greybox/JumpHeights" unique_id=2066337875]
|
||||
transform = Transform3D(-2.1855689e-07, 5, 2.18557e-07, 0, -2.18557e-07, 5, 5, 2.1855689e-07, 9.55343e-15, -28.5, 0.1, -11)
|
||||
text = "2m"
|
||||
|
||||
[node name="Label3D24" type="Label3D" parent="Greybox/JumpHeights" unique_id=2019920411]
|
||||
transform = Transform3D(-2.1855689e-07, 5, 2.18557e-07, 0, -2.18557e-07, 5, 5, 2.1855689e-07, 9.55343e-15, -28.5, 0.1, -21.5)
|
||||
text = "3m"
|
||||
|
||||
[node name="Label3D25" type="Label3D" parent="Greybox/JumpHeights" unique_id=1152598342]
|
||||
transform = Transform3D(-2.1855689e-07, 5, 2.18557e-07, 0, -2.18557e-07, 5, 5, 2.1855689e-07, 9.55343e-15, -28.5, 0.1, -31)
|
||||
text = "4m"
|
||||
|
||||
[node name="Label3D26" type="Label3D" parent="Greybox/JumpHeights" unique_id=2044865263]
|
||||
transform = Transform3D(-2.1855689e-07, 5, 2.18557e-07, 0, -2.18557e-07, 5, 5, 2.1855689e-07, 9.55343e-15, -28.5, 0.1, -41.5)
|
||||
text = "5m"
|
||||
|
||||
[node name="Label3D27" type="Label3D" parent="Greybox/JumpHeights" unique_id=1508331602]
|
||||
transform = Transform3D(-2.1855689e-07, 5, 2.18557e-07, 0, -2.18557e-07, 5, 5, 2.1855689e-07, 9.55343e-15, -28.5, 0.1, -51.5)
|
||||
text = "6m"
|
||||
|
||||
[node name="Label3D28" type="Label3D" parent="Greybox/JumpHeights" unique_id=816037691]
|
||||
transform = Transform3D(-2.1855689e-07, 5, 2.18557e-07, 0, -2.18557e-07, 5, 5, 2.1855689e-07, 9.55343e-15, -28.5, 0.1, -61)
|
||||
text = "7m"
|
||||
|
||||
[node name="Label3D29" type="Label3D" parent="Greybox/JumpHeights" unique_id=1451982413]
|
||||
transform = Transform3D(-2.1855689e-07, 5, 2.18557e-07, 0, -2.18557e-07, 5, 5, 2.1855689e-07, 9.55343e-15, -28.5, 0.1, -74.5)
|
||||
text = "8m"
|
||||
|
||||
[node name="Label3D8" type="Label3D" parent="Greybox/JumpHeights" unique_id=1308191043]
|
||||
transform = Transform3D(-2.18557e-07, -5, -2.18557e-07, 0, -2.18557e-07, 5, -5, 2.18557e-07, 9.55343e-15, -7, 0.1, -11.5)
|
||||
text = "1.5m"
|
||||
|
||||
[node name="Label3D9" type="Label3D" parent="Greybox/JumpHeights" unique_id=1470563462]
|
||||
transform = Transform3D(-2.18557e-07, -5, -2.18557e-07, 0, -2.18557e-07, 5, -5, 2.18557e-07, 9.55343e-15, -7, 0.1, -16.5)
|
||||
text = "2m"
|
||||
|
||||
[node name="Label3D10" type="Label3D" parent="Greybox/JumpHeights" unique_id=517230341]
|
||||
transform = Transform3D(-2.18557e-07, -5, -2.18557e-07, 0, -2.18557e-07, 5, -5, 2.18557e-07, 9.55343e-15, -7, 0.1, -21.5)
|
||||
text = "3m"
|
||||
|
||||
[node name="Label3D11" type="Label3D" parent="Greybox/JumpHeights" unique_id=1293816232]
|
||||
transform = Transform3D(-2.18557e-07, -5, -2.18557e-07, 0, -2.18557e-07, 5, -5, 2.18557e-07, 9.55343e-15, -7, 0.1, -26.5)
|
||||
text = "4m"
|
||||
|
||||
[node name="Label3D12" type="Label3D" parent="Greybox/JumpHeights" unique_id=1806324602]
|
||||
transform = Transform3D(-2.18557e-07, -5, -2.18557e-07, 0, -2.18557e-07, 5, -5, 2.18557e-07, 9.55343e-15, -7, 0.1, -31.5)
|
||||
text = "5m"
|
||||
|
||||
[node name="Label3D13" type="Label3D" parent="Greybox/JumpHeights" unique_id=1770523108]
|
||||
transform = Transform3D(-2.18557e-07, -5, -2.18557e-07, 0, -2.18557e-07, 5, -5, 2.18557e-07, 9.55343e-15, -7, 0.1, -36.5)
|
||||
text = "6m"
|
||||
|
||||
[node name="Label3D14" type="Label3D" parent="Greybox/JumpHeights" unique_id=623833835]
|
||||
transform = Transform3D(-2.18557e-07, -5, -2.18557e-07, 0, -2.18557e-07, 5, -5, 2.18557e-07, 9.55343e-15, -7, 0.1, -41.5)
|
||||
text = "7m"
|
||||
|
||||
[node name="Label3D15" type="Label3D" parent="Greybox/JumpHeights" unique_id=350021472]
|
||||
transform = Transform3D(-2.18557e-07, -5, -2.18557e-07, 0, -2.18557e-07, 5, -5, 2.18557e-07, 9.55343e-15, -7, 0.1, -46.5)
|
||||
text = "8m"
|
||||
|
||||
[node name="Label3D16" type="Label3D" parent="Greybox/JumpHeights" unique_id=1106153648]
|
||||
transform = Transform3D(-2.18557e-07, -5, -2.18557e-07, 0, -2.18557e-07, 5, -5, 2.18557e-07, 9.55343e-15, -7, 0.1, -51.5)
|
||||
text = "9m"
|
||||
|
||||
[node name="Label3D17" type="Label3D" parent="Greybox/JumpHeights" unique_id=1382154683]
|
||||
transform = Transform3D(-2.18557e-07, -5, -2.18557e-07, 0, -2.18557e-07, 5, -5, 2.18557e-07, 9.55343e-15, -7, 0.1, -56.5)
|
||||
text = "10m"
|
||||
|
||||
[node name="Label3D18" type="Label3D" parent="Greybox/JumpHeights" unique_id=698619474]
|
||||
transform = Transform3D(-2.18557e-07, -5, -2.18557e-07, 0, -2.18557e-07, 5, -5, 2.18557e-07, 9.55343e-15, -7, 0.1, -61.5)
|
||||
text = "12.5m"
|
||||
|
||||
[node name="Label3D19" type="Label3D" parent="Greybox/JumpHeights" unique_id=1918747333]
|
||||
transform = Transform3D(-2.18557e-07, -5, -2.18557e-07, 0, -2.18557e-07, 5, -5, 2.18557e-07, 9.55343e-15, -7, 0.1, -66.5)
|
||||
text = "15m"
|
||||
|
||||
[node name="Label3D20" type="Label3D" parent="Greybox/JumpHeights" unique_id=749209142]
|
||||
transform = Transform3D(-2.18557e-07, -5, -2.18557e-07, 0, -2.18557e-07, 5, -5, 2.18557e-07, 9.55343e-15, -7, 0.1, -71.5)
|
||||
text = "17.5m"
|
||||
|
||||
[node name="Label3D21" type="Label3D" parent="Greybox/JumpHeights" unique_id=1268617484]
|
||||
transform = Transform3D(-2.18557e-07, -5, -2.18557e-07, 0, -2.18557e-07, 5, -5, 2.18557e-07, 9.55343e-15, -7, 0.1, -76.5)
|
||||
text = "20m"
|
||||
|
||||
[node name="CSGBox3D14" type="CSGBox3D" parent="Greybox/JumpHeights" unique_id=942560904]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -10.5, 0.25, -1.5)
|
||||
use_collision = true
|
||||
size = Vector3(5, 0.5, 5)
|
||||
material = ExtResource("3_vvhq3")
|
||||
|
||||
[node name="CSGBox3D15" type="CSGBox3D" parent="Greybox/JumpHeights" unique_id=580104271]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -10.5, 0.5, -6.5)
|
||||
use_collision = true
|
||||
size = Vector3(5, 1, 5)
|
||||
material = ExtResource("3_vvhq3")
|
||||
|
||||
[node name="CSGBox3D16" type="CSGBox3D" parent="Greybox/JumpHeights" unique_id=585408401]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -10.5, 0.75, -11.5)
|
||||
use_collision = true
|
||||
size = Vector3(5, 1.5, 5)
|
||||
material = ExtResource("3_vvhq3")
|
||||
|
||||
[node name="CSGBox3D17" type="CSGBox3D" parent="Greybox/JumpHeights" unique_id=808992543]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -10.5, 1, -16.5)
|
||||
use_collision = true
|
||||
size = Vector3(5, 2, 5)
|
||||
material = ExtResource("3_vvhq3")
|
||||
|
||||
[node name="CSGBox3D18" type="CSGBox3D" parent="Greybox/JumpHeights" unique_id=500341031]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -10.5, 1.5, -21.5)
|
||||
use_collision = true
|
||||
size = Vector3(5, 3, 5)
|
||||
material = ExtResource("3_vvhq3")
|
||||
|
||||
[node name="CSGBox3D19" type="CSGBox3D" parent="Greybox/JumpHeights" unique_id=127771296]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -10.5, 2, -26.5)
|
||||
use_collision = true
|
||||
size = Vector3(5, 4, 5)
|
||||
material = ExtResource("3_vvhq3")
|
||||
|
||||
[node name="CSGBox3D20" type="CSGBox3D" parent="Greybox/JumpHeights" unique_id=752300025]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -10.5, 2.5, -31.5)
|
||||
use_collision = true
|
||||
size = Vector3(5, 5, 5)
|
||||
material = ExtResource("3_vvhq3")
|
||||
|
||||
[node name="CSGBox3D21" type="CSGBox3D" parent="Greybox/JumpHeights" unique_id=964844948]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -10.5, 3, -36.5)
|
||||
use_collision = true
|
||||
size = Vector3(5, 6, 5)
|
||||
material = ExtResource("3_vvhq3")
|
||||
|
||||
[node name="CSGBox3D22" type="CSGBox3D" parent="Greybox/JumpHeights" unique_id=1284495409]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -10.5, 3.5, -41.5)
|
||||
use_collision = true
|
||||
size = Vector3(5, 7, 5)
|
||||
material = ExtResource("3_vvhq3")
|
||||
|
||||
[node name="CSGBox3D23" type="CSGBox3D" parent="Greybox/JumpHeights" unique_id=1789414429]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -10.5, 4, -46.5)
|
||||
use_collision = true
|
||||
size = Vector3(5, 8, 5)
|
||||
material = ExtResource("3_vvhq3")
|
||||
|
||||
[node name="CSGBox3D24" type="CSGBox3D" parent="Greybox/JumpHeights" unique_id=1372664433]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -10.5, 4.5, -51.5)
|
||||
use_collision = true
|
||||
size = Vector3(5, 9, 5)
|
||||
material = ExtResource("3_vvhq3")
|
||||
|
||||
[node name="CSGBox3D25" type="CSGBox3D" parent="Greybox/JumpHeights" unique_id=1339820114]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -10.5, 5, -56.5)
|
||||
use_collision = true
|
||||
size = Vector3(5, 10, 5)
|
||||
material = ExtResource("3_vvhq3")
|
||||
|
||||
[node name="CSGBox3D30" type="CSGBox3D" parent="Greybox/JumpHeights" unique_id=1631874678]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 9.5, -50)
|
||||
use_collision = true
|
||||
size = Vector3(5, 1, 5)
|
||||
material = ExtResource("3_vvhq3")
|
||||
|
||||
[node name="CSGBox3D31" type="CSGBox3D" parent="Greybox/JumpHeights" unique_id=92296730]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 6, 9.75, -50)
|
||||
use_collision = true
|
||||
size = Vector3(5, 0.5, 5)
|
||||
material = ExtResource("3_vvhq3")
|
||||
|
||||
[node name="CSGBox3D32" type="CSGBox3D" parent="Greybox/JumpHeights" unique_id=919734519]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 11, 9.875, -50)
|
||||
use_collision = true
|
||||
size = Vector3(5, 0.25, 5)
|
||||
material = ExtResource("3_vvhq3")
|
||||
|
||||
[node name="CSGBox3D26" type="CSGBox3D" parent="Greybox/JumpHeights" unique_id=632258873]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -10.5, 6.25, -61.5)
|
||||
use_collision = true
|
||||
size = Vector3(5, 12.5, 5)
|
||||
material = ExtResource("3_vvhq3")
|
||||
|
||||
[node name="CSGBox3D27" type="CSGBox3D" parent="Greybox/JumpHeights" unique_id=1421623781]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -10.5, 7.5, -66.5)
|
||||
use_collision = true
|
||||
size = Vector3(5, 15, 5)
|
||||
material = ExtResource("3_vvhq3")
|
||||
|
||||
[node name="CSGBox3D28" type="CSGBox3D" parent="Greybox/JumpHeights" unique_id=1274987907]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -10.5, 8.75, -71.5)
|
||||
use_collision = true
|
||||
size = Vector3(5, 17.5, 5)
|
||||
material = ExtResource("3_vvhq3")
|
||||
|
||||
[node name="CSGBox3D29" type="CSGBox3D" parent="Greybox/JumpHeights" unique_id=1284199936]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -30.25, 10, -40)
|
||||
use_collision = true
|
||||
size = Vector3(0.5, 20, 80)
|
||||
material = ExtResource("3_vvhq3")
|
||||
|
||||
[node name="CSGBox3D33" type="CSGBox3D" parent="Greybox/JumpHeights" unique_id=282038058]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -24.75, 10, -5)
|
||||
use_collision = true
|
||||
size = Vector3(7.5, 20, 10)
|
||||
material = ExtResource("3_vvhq3")
|
||||
|
||||
[node name="CSGBox3D41" type="CSGBox3D" parent="Greybox/JumpHeights" unique_id=1258759526]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 22.75, 5, -1.5)
|
||||
use_collision = true
|
||||
size = Vector3(12.5, 10, 3)
|
||||
material = ExtResource("3_vvhq3")
|
||||
|
||||
[node name="CSGBox3D47" type="CSGBox3D" parent="Greybox/JumpHeights" unique_id=1619601364]
|
||||
transform = Transform3D(1, 0, 0, 0, 0.9848078, 0.17364816, 0, -0.17364816, 0.9848078, 22.75, 0.03095889, -30.695885)
|
||||
use_collision = true
|
||||
size = Vector3(12.5, 10, 58)
|
||||
material = ExtResource("3_vvhq3")
|
||||
|
||||
[node name="CSGBox3D48" type="CSGBox3D" parent="Greybox/JumpHeights" unique_id=1868104378]
|
||||
transform = Transform3D(1, 0, 0, 0, 0.9396926, 0.34202012, 0, -0.34202012, 0.9396926, 30.5, 1.5878377, -16.713436)
|
||||
use_collision = true
|
||||
size = Vector3(3, 6.5, 31.5)
|
||||
material = ExtResource("3_vvhq3")
|
||||
|
||||
[node name="CSGBox3D49" type="CSGBox3D" parent="Greybox/JumpHeights" unique_id=1533360289]
|
||||
transform = Transform3D(1, 0, 0, 0, 0.86602545, 0.5, 0, -0.5, 0.86602545, 33.5, 2.5053406, -10.524445)
|
||||
use_collision = true
|
||||
size = Vector3(3, 5.5, 20.5)
|
||||
material = ExtResource("3_vvhq3")
|
||||
|
||||
[node name="CSGBox3D42" type="CSGBox3D" parent="Greybox/JumpHeights" unique_id=76190477]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 30.5, 5, -1.5)
|
||||
use_collision = true
|
||||
size = Vector3(3, 10, 3)
|
||||
material = ExtResource("3_vvhq3")
|
||||
|
||||
[node name="CSGBox3D43" type="CSGBox3D" parent="Greybox/JumpHeights" unique_id=1165241235]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 33.5, 5, -1.5)
|
||||
use_collision = true
|
||||
size = Vector3(3, 10, 3)
|
||||
material = ExtResource("3_vvhq3")
|
||||
|
||||
[node name="CSGBox3D44" type="CSGBox3D" parent="Greybox/JumpHeights" unique_id=1360018990]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 36.5, 5, -1.5)
|
||||
use_collision = true
|
||||
size = Vector3(3, 10, 3)
|
||||
material = ExtResource("3_vvhq3")
|
||||
|
||||
[node name="CSGBox3D45" type="CSGBox3D" parent="Greybox/JumpHeights" unique_id=1830898064]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 39.5, 5, -1.5)
|
||||
use_collision = true
|
||||
size = Vector3(3, 10, 3)
|
||||
material = ExtResource("3_vvhq3")
|
||||
|
||||
[node name="CSGBox3D46" type="CSGBox3D" parent="Greybox/JumpHeights" unique_id=694688329]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 42.5, 5, -1.5)
|
||||
use_collision = true
|
||||
size = Vector3(3, 10, 3)
|
||||
material = ExtResource("3_vvhq3")
|
||||
|
||||
[node name="CSGBox3D34" type="CSGBox3D" parent="Greybox/JumpHeights" unique_id=498798132]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -24.5, 10, -15)
|
||||
use_collision = true
|
||||
size = Vector3(7, 20, 10)
|
||||
material = ExtResource("3_vvhq3")
|
||||
|
||||
[node name="CSGBox3D35" type="CSGBox3D" parent="Greybox/JumpHeights" unique_id=1246548038]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -24, 10, -25)
|
||||
use_collision = true
|
||||
size = Vector3(6, 20, 10)
|
||||
material = ExtResource("3_vvhq3")
|
||||
|
||||
[node name="CSGBox3D36" type="CSGBox3D" parent="Greybox/JumpHeights" unique_id=1584237505]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -23.5, 10, -35)
|
||||
use_collision = true
|
||||
size = Vector3(5, 20, 10)
|
||||
material = ExtResource("3_vvhq3")
|
||||
|
||||
[node name="CSGBox3D37" type="CSGBox3D" parent="Greybox/JumpHeights" unique_id=331538659]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -23, 10, -45)
|
||||
use_collision = true
|
||||
size = Vector3(4, 20, 10)
|
||||
material = ExtResource("3_vvhq3")
|
||||
|
||||
[node name="CSGBox3D38" type="CSGBox3D" parent="Greybox/JumpHeights" unique_id=778040676]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -22.5, 10, -55)
|
||||
use_collision = true
|
||||
size = Vector3(3, 20, 10)
|
||||
material = ExtResource("3_vvhq3")
|
||||
|
||||
[node name="CSGBox3D39" type="CSGBox3D" parent="Greybox/JumpHeights" unique_id=749396522]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -22, 10, -65)
|
||||
use_collision = true
|
||||
size = Vector3(2, 20, 10)
|
||||
material = ExtResource("3_vvhq3")
|
||||
|
||||
[node name="CSGBox3D40" type="CSGBox3D" parent="Greybox/JumpHeights" unique_id=1945303355]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -21.5, 10, -75)
|
||||
use_collision = true
|
||||
size = Vector3(1, 20, 10)
|
||||
material = ExtResource("3_vvhq3")
|
||||
|
||||
[node name="Passageways" type="CSGCombiner3D" parent="Greybox" unique_id=677969083]
|
||||
|
||||
[node name="CSGBox3D30" type="CSGBox3D" parent="Greybox/Passageways" unique_id=1481494931]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 12, 2.25, -6.5)
|
||||
use_collision = true
|
||||
size = Vector3(5, 5, 5)
|
||||
material = ExtResource("3_vvhq3")
|
||||
|
||||
[node name="CSGBox3D34" type="CSGBox3D" parent="Greybox/Passageways" unique_id=1048797470]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 12, 1.5, -6.5)
|
||||
operation = 2
|
||||
use_collision = true
|
||||
size = Vector3(5, 3, 3)
|
||||
material = ExtResource("3_vvhq3")
|
||||
|
||||
[node name="CSGBox3D31" type="CSGBox3D" parent="Greybox/Passageways" unique_id=930969091]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 12, 2.25, -16.5)
|
||||
use_collision = true
|
||||
size = Vector3(5, 5, 5)
|
||||
material = ExtResource("3_vvhq3")
|
||||
|
||||
[node name="CSGBox3D35" type="CSGBox3D" parent="Greybox/Passageways" unique_id=1117727389]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 12, 0.5, -16.5)
|
||||
operation = 2
|
||||
use_collision = true
|
||||
size = Vector3(5, 3, 2)
|
||||
material = ExtResource("3_vvhq3")
|
||||
|
||||
[node name="CSGBox3D38" type="CSGBox3D" parent="Greybox/Passageways" unique_id=1320724023]
|
||||
transform = Transform3D(-4.371139e-08, 0, -1, 0, 1, 0, 1, 0, -4.371139e-08, 21.5, 2.25, 22.5)
|
||||
use_collision = true
|
||||
size = Vector3(5, 5, 5)
|
||||
material = ExtResource("3_vvhq3")
|
||||
|
||||
[node name="CSGBox3D39" type="CSGBox3D" parent="Greybox/Passageways" unique_id=2070041982]
|
||||
transform = Transform3D(-4.371139e-08, 0, -1, 0, 1, 0, 1, 0, -4.371139e-08, 21.25, 0.5, 22.5)
|
||||
operation = 2
|
||||
use_collision = true
|
||||
size = Vector3(5, 3, 1.5)
|
||||
material = ExtResource("3_vvhq3")
|
||||
|
||||
[node name="CSGBox3D40" type="CSGBox3D" parent="Greybox/Passageways" unique_id=1332332880]
|
||||
transform = Transform3D(-4.371139e-08, 0, -1, 0, 1, 0, 1, 0, -4.371139e-08, 28.5, 2.25, 22.5)
|
||||
use_collision = true
|
||||
size = Vector3(5, 5, 5)
|
||||
material = ExtResource("3_vvhq3")
|
||||
|
||||
[node name="CSGBox3D41" type="CSGBox3D" parent="Greybox/Passageways" unique_id=1557133957]
|
||||
transform = Transform3D(-4.371139e-08, 0, -1, 0, 1, 0, 1, 0, -4.371139e-08, 28.25, 0.25, 22.5)
|
||||
operation = 2
|
||||
use_collision = true
|
||||
size = Vector3(5, 2.5, 1.5)
|
||||
material = ExtResource("3_vvhq3")
|
||||
|
||||
[node name="CSGBox3D42" type="CSGBox3D" parent="Greybox/Passageways" unique_id=425387876]
|
||||
transform = Transform3D(-4.371139e-08, 0, -1, 0, 1, 0, 1, 0, -4.371139e-08, 35.5, 2.25, 22.5)
|
||||
use_collision = true
|
||||
size = Vector3(5, 5, 5)
|
||||
material = ExtResource("3_vvhq3")
|
||||
|
||||
[node name="CSGBox3D43" type="CSGBox3D" parent="Greybox/Passageways" unique_id=1661141377]
|
||||
transform = Transform3D(-4.371139e-08, 0, -1, 0, 1, 0, 1, 0, -4.371139e-08, 35.25, -0.5, 22.5)
|
||||
operation = 2
|
||||
use_collision = true
|
||||
size = Vector3(5, 3, 1.5)
|
||||
material = ExtResource("3_vvhq3")
|
||||
|
||||
[node name="CSGBox3D44" type="CSGBox3D" parent="Greybox/Passageways" unique_id=179620552]
|
||||
transform = Transform3D(-4.371139e-08, 0, -1, 0, 1, 0, 1, 0, -4.371139e-08, 42.5, 2.25, 22.5)
|
||||
use_collision = true
|
||||
size = Vector3(5, 5, 5)
|
||||
material = ExtResource("3_vvhq3")
|
||||
|
||||
[node name="CSGBox3D45" type="CSGBox3D" parent="Greybox/Passageways" unique_id=351904606]
|
||||
transform = Transform3D(-4.371139e-08, 0, -1, 0, 1, 0, 1, 0, -4.371139e-08, 42.25, -1, 22.5)
|
||||
operation = 2
|
||||
use_collision = true
|
||||
size = Vector3(5, 3, 1.5)
|
||||
material = ExtResource("3_vvhq3")
|
||||
|
||||
[node name="CSGBox3D46" type="CSGBox3D" parent="Greybox/Passageways" unique_id=357200570]
|
||||
transform = Transform3D(-2.6226834e-08, 0, -1, 0, 1, 0, 0.6, 0, -4.371139e-08, 21.5, 2.25, 31.5)
|
||||
use_collision = true
|
||||
size = Vector3(5, 5, 5)
|
||||
material = ExtResource("3_vvhq3")
|
||||
|
||||
[node name="CSGBox3D47" type="CSGBox3D" parent="Greybox/Passageways" unique_id=2085426420]
|
||||
transform = Transform3D(-2.6226834e-08, 0, -1, 0, 1, 0, 0.6, 0, -4.371139e-08, 21.25, 0.5, 31.5)
|
||||
operation = 2
|
||||
use_collision = true
|
||||
size = Vector3(5, 3, 1.5)
|
||||
material = ExtResource("3_vvhq3")
|
||||
|
||||
[node name="CSGBox3D48" type="CSGBox3D" parent="Greybox/Passageways" unique_id=555217301]
|
||||
transform = Transform3D(-2.6226834e-08, 0, -1, 0, 1, 0, 0.6, 0, -4.371139e-08, 28.5, 2.25, 31.5)
|
||||
use_collision = true
|
||||
size = Vector3(5, 5, 5)
|
||||
material = ExtResource("3_vvhq3")
|
||||
|
||||
[node name="CSGBox3D49" type="CSGBox3D" parent="Greybox/Passageways" unique_id=85616752]
|
||||
transform = Transform3D(-2.6226834e-08, 0, -1, 0, 1, 0, 0.6, 0, -4.371139e-08, 28.25, 0.25, 31.5)
|
||||
operation = 2
|
||||
use_collision = true
|
||||
size = Vector3(5, 2.5, 1.5)
|
||||
material = ExtResource("3_vvhq3")
|
||||
|
||||
[node name="CSGBox3D50" type="CSGBox3D" parent="Greybox/Passageways" unique_id=28571400]
|
||||
transform = Transform3D(-2.6226834e-08, 0, -1, 0, 1, 0, 0.6, 0, -4.371139e-08, 35.5, 2.25, 31.5)
|
||||
use_collision = true
|
||||
size = Vector3(5, 5, 5)
|
||||
material = ExtResource("3_vvhq3")
|
||||
|
||||
[node name="CSGBox3D51" type="CSGBox3D" parent="Greybox/Passageways" unique_id=1721812352]
|
||||
transform = Transform3D(-2.6226834e-08, 0, -1, 0, 1, 0, 0.6, 0, -4.371139e-08, 35.25, -0.5, 31.5)
|
||||
operation = 2
|
||||
use_collision = true
|
||||
size = Vector3(5, 3, 1.5)
|
||||
material = ExtResource("3_vvhq3")
|
||||
|
||||
[node name="CSGBox3D52" type="CSGBox3D" parent="Greybox/Passageways" unique_id=1658935175]
|
||||
transform = Transform3D(-2.6226834e-08, 0, -1, 0, 1, 0, 0.6, 0, -4.371139e-08, 42.5, 2.25, 31.5)
|
||||
use_collision = true
|
||||
size = Vector3(5, 5, 5)
|
||||
material = ExtResource("3_vvhq3")
|
||||
|
||||
[node name="CSGBox3D53" type="CSGBox3D" parent="Greybox/Passageways" unique_id=1619696510]
|
||||
transform = Transform3D(-2.6226834e-08, 0, -1, 0, 1, 0, 0.6, 0, -4.371139e-08, 42.25, -1, 31.5)
|
||||
operation = 2
|
||||
use_collision = true
|
||||
size = Vector3(5, 3, 1.5)
|
||||
material = ExtResource("3_vvhq3")
|
||||
|
||||
[node name="CSGBox3D54" type="CSGBox3D" parent="Greybox/Passageways" unique_id=1250559296]
|
||||
transform = Transform3D(-7.86805e-09, 0, -1, 0, 1, 0, 0.18, 0, -4.371139e-08, 21.5, 2.25, 39.5)
|
||||
use_collision = true
|
||||
size = Vector3(5, 5, 5)
|
||||
material = ExtResource("3_vvhq3")
|
||||
|
||||
[node name="CSGBox3D55" type="CSGBox3D" parent="Greybox/Passageways" unique_id=248318083]
|
||||
transform = Transform3D(-7.86805e-09, 0, -1, 0, 1, 0, 0.18, 0, -4.371139e-08, 21.25, 0.5, 39.5)
|
||||
operation = 2
|
||||
use_collision = true
|
||||
size = Vector3(5, 3, 1.5)
|
||||
material = ExtResource("3_vvhq3")
|
||||
|
||||
[node name="CSGBox3D56" type="CSGBox3D" parent="Greybox/Passageways" unique_id=1031611906]
|
||||
transform = Transform3D(-7.86805e-09, 0, -1, 0, 1, 0, 0.18, 0, -4.371139e-08, 28.5, 2.25, 39.5)
|
||||
use_collision = true
|
||||
size = Vector3(5, 5, 5)
|
||||
material = ExtResource("3_vvhq3")
|
||||
|
||||
[node name="CSGBox3D57" type="CSGBox3D" parent="Greybox/Passageways" unique_id=2134340759]
|
||||
transform = Transform3D(-7.86805e-09, 0, -1, 0, 1, 0, 0.18, 0, -4.371139e-08, 28.25, 0.25, 39.5)
|
||||
operation = 2
|
||||
use_collision = true
|
||||
size = Vector3(5, 2.5, 1.5)
|
||||
material = ExtResource("3_vvhq3")
|
||||
|
||||
[node name="CSGBox3D58" type="CSGBox3D" parent="Greybox/Passageways" unique_id=1499177937]
|
||||
transform = Transform3D(-7.86805e-09, 0, -1, 0, 1, 0, 0.18, 0, -4.371139e-08, 35.5, 2.25, 39.5)
|
||||
use_collision = true
|
||||
size = Vector3(5, 5, 5)
|
||||
material = ExtResource("3_vvhq3")
|
||||
|
||||
[node name="CSGBox3D59" type="CSGBox3D" parent="Greybox/Passageways" unique_id=165562631]
|
||||
transform = Transform3D(-7.86805e-09, 0, -1, 0, 1, 0, 0.18, 0, -4.371139e-08, 35.25, -0.5, 39.5)
|
||||
operation = 2
|
||||
use_collision = true
|
||||
size = Vector3(5, 3, 1.5)
|
||||
material = ExtResource("3_vvhq3")
|
||||
|
||||
[node name="CSGBox3D60" type="CSGBox3D" parent="Greybox/Passageways" unique_id=1318706705]
|
||||
transform = Transform3D(-7.86805e-09, 0, -1, 0, 1, 0, 0.18, 0, -4.371139e-08, 42.5, 2.25, 39.5)
|
||||
use_collision = true
|
||||
size = Vector3(5, 5, 5)
|
||||
material = ExtResource("3_vvhq3")
|
||||
|
||||
[node name="CSGBox3D61" type="CSGBox3D" parent="Greybox/Passageways" unique_id=887461416]
|
||||
transform = Transform3D(-7.86805e-09, 0, -1, 0, 1, 0, 0.18, 0, -4.371139e-08, 42.25, -1, 39.5)
|
||||
operation = 2
|
||||
use_collision = true
|
||||
size = Vector3(5, 3, 1.5)
|
||||
material = ExtResource("3_vvhq3")
|
||||
|
||||
[node name="CSGBox3D32" type="CSGBox3D" parent="Greybox/Passageways" unique_id=1804430744]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 12, 2.25, -26.5)
|
||||
use_collision = true
|
||||
size = Vector3(5, 5, 5)
|
||||
material = ExtResource("3_vvhq3")
|
||||
|
||||
[node name="CSGBox3D36" type="CSGBox3D" parent="Greybox/Passageways" unique_id=1364916863]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 12, 0.5, -26.5)
|
||||
operation = 2
|
||||
use_collision = true
|
||||
size = Vector3(5, 3, 1)
|
||||
material = ExtResource("3_vvhq3")
|
||||
|
||||
[node name="CSGBox3D33" type="CSGBox3D" parent="Greybox/Passageways" unique_id=1526520386]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 12, 2.25, -36.5)
|
||||
use_collision = true
|
||||
size = Vector3(5, 5, 5)
|
||||
material = ExtResource("3_vvhq3")
|
||||
|
||||
[node name="CSGBox3D37" type="CSGBox3D" parent="Greybox/Passageways" unique_id=1368661310]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 12, -0.5, -36.5)
|
||||
operation = 2
|
||||
use_collision = true
|
||||
size = Vector3(5, 3, 1)
|
||||
material = ExtResource("3_vvhq3")
|
||||
|
||||
[node name="CSGBox3D14" type="CSGBox3D" parent="Greybox/Passageways" unique_id=283118902]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 12, 4.5, -21.5)
|
||||
use_collision = true
|
||||
size = Vector3(0.5, 0.5, 5)
|
||||
material = ExtResource("3_vvhq3")
|
||||
|
||||
[node name="CSGBox3D16" type="CSGBox3D" parent="Greybox/Passageways" unique_id=694923358]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 12, 4.5, -31.5)
|
||||
use_collision = true
|
||||
size = Vector3(0.25, 0.5, 5)
|
||||
material = ExtResource("3_vvhq3")
|
||||
|
||||
[node name="CSGBox3D15" type="CSGBox3D" parent="Greybox/Passageways" unique_id=135402735]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 12, 4.5, -11.5)
|
||||
use_collision = true
|
||||
size = Vector3(1, 0.5, 5)
|
||||
material = ExtResource("3_vvhq3")
|
||||
|
||||
[node name="Mantles" type="CSGCombiner3D" parent="Greybox" unique_id=981837550]
|
||||
|
||||
[node name="Label3D22" type="Label3D" parent="Greybox/Mantles" unique_id=1749350071]
|
||||
transform = Transform3D(-5, 4.3711395e-07, 1.9106861e-14, 0, -2.18557e-07, 5, 4.3711395e-07, 5, 2.18557e-07, -5.5, 0.1, 11)
|
||||
text = "0.5m"
|
||||
|
||||
[node name="Label3D35" type="Label3D" parent="Greybox/Mantles" unique_id=2055966274]
|
||||
transform = Transform3D(-5, 4.3711395e-07, 1.9106861e-14, 0, -2.18557e-07, 5, 4.3711395e-07, 5, 2.18557e-07, -8.5, 0.1, 11)
|
||||
text = "0.25m"
|
||||
|
||||
[node name="Label3D23" type="Label3D" parent="Greybox/Mantles" unique_id=328340961]
|
||||
transform = Transform3D(-5, 4.3711395e-07, 1.9106861e-14, 0, -2.18557e-07, 5, 4.3711395e-07, 5, 2.18557e-07, -2, 0.1, 11)
|
||||
text = "1m"
|
||||
|
||||
[node name="Label3D27" type="Label3D" parent="Greybox/Mantles" unique_id=743712317]
|
||||
transform = Transform3D(-5, 4.3711395e-07, 1.9106861e-14, 0, -2.18557e-07, 5, 4.3711395e-07, 5, 2.18557e-07, -11, 0.1, 12.5)
|
||||
text = "1m"
|
||||
|
||||
[node name="Label3D28" type="Label3D" parent="Greybox/Mantles" unique_id=504602524]
|
||||
transform = Transform3D(-5, 4.3711395e-07, 1.9106861e-14, 0, -2.18557e-07, 5, 4.3711395e-07, 5, 2.18557e-07, 13, 0.1, 12.5)
|
||||
text = "1m"
|
||||
|
||||
[node name="Label3D29" type="Label3D" parent="Greybox/Mantles" unique_id=2030993341]
|
||||
transform = Transform3D(-5, 4.3711395e-07, 1.9106861e-14, 0, -2.18557e-07, 5, 4.3711395e-07, 5, 2.18557e-07, 13, 0.1, 21)
|
||||
text = "2m"
|
||||
|
||||
[node name="Label3D30" type="Label3D" parent="Greybox/Mantles" unique_id=1124860686]
|
||||
transform = Transform3D(-5, 4.3711395e-07, 1.9106861e-14, 0, -2.18557e-07, 5, 4.3711395e-07, 5, 2.18557e-07, 13, 0.1, 28.5)
|
||||
text = "3m"
|
||||
|
||||
[node name="Label3D31" type="Label3D" parent="Greybox/Mantles" unique_id=1317588075]
|
||||
transform = Transform3D(-5, 4.3711395e-07, 1.9106861e-14, 0, -2.18557e-07, 5, 4.3711395e-07, 5, 2.18557e-07, -11, 0.1, 21)
|
||||
text = "2m"
|
||||
|
||||
[node name="Label3D32" type="Label3D" parent="Greybox/Mantles" unique_id=1366926955]
|
||||
transform = Transform3D(-5, 4.3711395e-07, 1.9106861e-14, 0, -2.18557e-07, 5, 4.3711395e-07, 5, 2.18557e-07, -11, 0.1, 28.5)
|
||||
text = "3m"
|
||||
|
||||
[node name="Label3D24" type="Label3D" parent="Greybox/Mantles" unique_id=248801834]
|
||||
transform = Transform3D(-5, 4.3711395e-07, 1.9106861e-14, 0, -2.18557e-07, 5, 4.3711395e-07, 5, 2.18557e-07, 2, 0.1, 11)
|
||||
text = "1.5m"
|
||||
|
||||
[node name="Label3D25" type="Label3D" parent="Greybox/Mantles" unique_id=1124306017]
|
||||
transform = Transform3D(-5, 4.3711395e-07, 1.9106861e-14, 0, -2.18557e-07, 5, 4.3711395e-07, 5, 2.18557e-07, 6, 0.1, 11)
|
||||
text = "2m"
|
||||
|
||||
[node name="Label3D26" type="Label3D" parent="Greybox/Mantles" unique_id=1225991052]
|
||||
transform = Transform3D(-5, 4.3711395e-07, 1.9106861e-14, 0, -2.18557e-07, 5, 4.3711395e-07, 5, 2.18557e-07, 10, 0.1, 11)
|
||||
text = "4m"
|
||||
|
||||
[node name="CSGBox3D33" type="CSGBox3D" parent="Greybox/Mantles" unique_id=1996945224]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2, 0.5, 12.5)
|
||||
use_collision = true
|
||||
size = Vector3(4, 1, 1)
|
||||
material = ExtResource("3_vvhq3")
|
||||
|
||||
[node name="CSGBox3D34" type="CSGBox3D" parent="Greybox/Mantles" unique_id=1009493198]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -5.5, 0.5, 12.25)
|
||||
use_collision = true
|
||||
size = Vector3(3, 1, 0.5)
|
||||
material = ExtResource("3_vvhq3")
|
||||
|
||||
[node name="CSGBox3D35" type="CSGBox3D" parent="Greybox/Mantles" unique_id=1749498204]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2, 0.5, 12.75)
|
||||
use_collision = true
|
||||
size = Vector3(4, 1, 1.5)
|
||||
material = ExtResource("3_vvhq3")
|
||||
|
||||
[node name="CSGBox3D36" type="CSGBox3D" parent="Greybox/Mantles" unique_id=312432354]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 6, 0.5, 13)
|
||||
use_collision = true
|
||||
size = Vector3(4, 1, 2)
|
||||
material = ExtResource("3_vvhq3")
|
||||
|
||||
[node name="CSGBox3D37" type="CSGBox3D" parent="Greybox/Mantles" unique_id=1640084191]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 10, 0.5, 14)
|
||||
use_collision = true
|
||||
size = Vector3(4, 1, 4)
|
||||
material = ExtResource("3_vvhq3")
|
||||
|
||||
[node name="CSGBox3D38" type="CSGBox3D" parent="Greybox/Mantles" unique_id=301256990]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2, 1, 20.5)
|
||||
use_collision = true
|
||||
size = Vector3(4, 2, 1)
|
||||
material = ExtResource("3_vvhq3")
|
||||
|
||||
[node name="CSGBox3D39" type="CSGBox3D" parent="Greybox/Mantles" unique_id=1252915649]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -5.5, 1, 20.25)
|
||||
use_collision = true
|
||||
size = Vector3(3, 2, 0.5)
|
||||
material = ExtResource("3_vvhq3")
|
||||
|
||||
[node name="CSGBox3D40" type="CSGBox3D" parent="Greybox/Mantles" unique_id=1017054955]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2, 1, 20.75)
|
||||
use_collision = true
|
||||
size = Vector3(4, 2, 1.5)
|
||||
material = ExtResource("3_vvhq3")
|
||||
|
||||
[node name="CSGBox3D41" type="CSGBox3D" parent="Greybox/Mantles" unique_id=1276092930]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 6, 1, 21)
|
||||
use_collision = true
|
||||
size = Vector3(4, 2, 2)
|
||||
material = ExtResource("3_vvhq3")
|
||||
|
||||
[node name="CSGBox3D42" type="CSGBox3D" parent="Greybox/Mantles" unique_id=1107832581]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 10, 1, 22)
|
||||
use_collision = true
|
||||
size = Vector3(4, 2, 4)
|
||||
material = ExtResource("3_vvhq3")
|
||||
|
||||
[node name="CSGBox3D43" type="CSGBox3D" parent="Greybox/Mantles" unique_id=195563549]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2, 1.5, 28.5)
|
||||
use_collision = true
|
||||
size = Vector3(4, 3, 1)
|
||||
material = ExtResource("3_vvhq3")
|
||||
|
||||
[node name="CSGBox3D44" type="CSGBox3D" parent="Greybox/Mantles" unique_id=1422563548]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -5.5, 1.5, 28.25)
|
||||
use_collision = true
|
||||
size = Vector3(3, 3, 0.5)
|
||||
material = ExtResource("3_vvhq3")
|
||||
|
||||
[node name="CSGBox3D45" type="CSGBox3D" parent="Greybox/Mantles" unique_id=597518478]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2, 1.5, 28.75)
|
||||
use_collision = true
|
||||
size = Vector3(4, 3, 1.5)
|
||||
material = ExtResource("3_vvhq3")
|
||||
|
||||
[node name="CSGBox3D46" type="CSGBox3D" parent="Greybox/Mantles" unique_id=2035828800]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 6, 1.5, 29)
|
||||
use_collision = true
|
||||
size = Vector3(4, 3, 2)
|
||||
material = ExtResource("3_vvhq3")
|
||||
|
||||
[node name="CSGBox3D47" type="CSGBox3D" parent="Greybox/Mantles" unique_id=2050446324]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 10, 1.5, 30)
|
||||
use_collision = true
|
||||
size = Vector3(4, 3, 4)
|
||||
material = ExtResource("3_vvhq3")
|
||||
|
||||
[node name="Label3D33" type="Label3D" parent="Greybox/Mantles" unique_id=437224967]
|
||||
transform = Transform3D(-5, 4.3711395e-07, 1.9106861e-14, 0, -2.18557e-07, 5, 4.3711395e-07, 5, 2.18557e-07, 13, 0.1, 36.5)
|
||||
text = "4m"
|
||||
|
||||
[node name="Label3D34" type="Label3D" parent="Greybox/Mantles" unique_id=1883460159]
|
||||
transform = Transform3D(-5, 4.3711395e-07, 1.9106861e-14, 0, -2.18557e-07, 5, 4.3711395e-07, 5, 2.18557e-07, -11, 0.1, 36.5)
|
||||
text = "4m"
|
||||
|
||||
[node name="CSGBox3D48" type="CSGBox3D" parent="Greybox/Mantles" unique_id=1685845188]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2, 2, 36.5)
|
||||
use_collision = true
|
||||
size = Vector3(4, 4, 1)
|
||||
material = ExtResource("3_vvhq3")
|
||||
|
||||
[node name="CSGBox3D49" type="CSGBox3D" parent="Greybox/Mantles" unique_id=1338959967]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -5.5, 2, 36.25)
|
||||
use_collision = true
|
||||
size = Vector3(3, 4, 0.5)
|
||||
material = ExtResource("3_vvhq3")
|
||||
|
||||
[node name="CSGBox3D53" type="CSGBox3D" parent="Greybox/Mantles" unique_id=1194447690]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -8.5, 0.5, 12.125)
|
||||
use_collision = true
|
||||
size = Vector3(3, 1, 0.25)
|
||||
material = ExtResource("3_vvhq3")
|
||||
|
||||
[node name="CSGBox3D57" type="CSGBox3D" parent="Greybox/Mantles" unique_id=1186673858]
|
||||
transform = Transform3D(-4.371139e-08, 0, -1, 0, 1, 0, 1, 0, -4.371139e-08, -13, 3.5, -21.629175)
|
||||
use_collision = true
|
||||
size = Vector3(5, 1, 0.25)
|
||||
material = ExtResource("3_vvhq3")
|
||||
|
||||
[node name="CSGBox3D54" type="CSGBox3D" parent="Greybox/Mantles" unique_id=1895250071]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -8.5, 1, 20.125)
|
||||
use_collision = true
|
||||
size = Vector3(3, 2, 0.25)
|
||||
material = ExtResource("3_vvhq3")
|
||||
|
||||
[node name="CSGBox3D55" type="CSGBox3D" parent="Greybox/Mantles" unique_id=141610439]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -8.5, 1.5, 28.125)
|
||||
use_collision = true
|
||||
size = Vector3(3, 3, 0.25)
|
||||
material = ExtResource("3_vvhq3")
|
||||
|
||||
[node name="CSGBox3D56" type="CSGBox3D" parent="Greybox/Mantles" unique_id=343197184]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -8.5, 2, 36.125)
|
||||
use_collision = true
|
||||
size = Vector3(3, 4, 0.25)
|
||||
material = ExtResource("3_vvhq3")
|
||||
|
||||
[node name="CSGBox3D50" type="CSGBox3D" parent="Greybox/Mantles" unique_id=1273139469]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2, 2, 36.75)
|
||||
use_collision = true
|
||||
size = Vector3(4, 4, 1.5)
|
||||
material = ExtResource("3_vvhq3")
|
||||
|
||||
[node name="CSGBox3D51" type="CSGBox3D" parent="Greybox/Mantles" unique_id=1688782002]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 6, 2, 37)
|
||||
use_collision = true
|
||||
size = Vector3(4, 4, 2)
|
||||
material = ExtResource("3_vvhq3")
|
||||
|
||||
[node name="CSGBox3D52" type="CSGBox3D" parent="Greybox/Mantles" unique_id=443302723]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 10, 2, 38)
|
||||
use_collision = true
|
||||
size = Vector3(4, 4, 4)
|
||||
material = ExtResource("3_vvhq3")
|
||||
@@ -2,9 +2,6 @@ using Godot;
|
||||
using System;
|
||||
using Chickensoft.AutoInject;
|
||||
using Chickensoft.Introspection;
|
||||
using Gamesmiths.Forge.Cues;
|
||||
using Gamesmiths.Forge.Godot.Core;
|
||||
using Gamesmiths.Forge.Tags;
|
||||
using Movementtests.interfaces;using Movementtests.managers;
|
||||
using Movementtests.systems;
|
||||
|
||||
@@ -13,78 +10,51 @@ using Movementtests.systems;
|
||||
typeof(IAutoConnect),
|
||||
typeof(IProvider)
|
||||
)]
|
||||
public partial class MainSceneTemplate : Node3D,
|
||||
IProvide<InventoryManager>,
|
||||
IProvide<TagsManager>,
|
||||
IProvide<CuesManager>,
|
||||
IProvide<TokenManager>,
|
||||
IProvide<WaveManager>
|
||||
public partial class MainSceneTemplate : Node3D, IProvide<InventoryManager>
|
||||
{
|
||||
public override void _Notification(int what) => this.Notify(what);
|
||||
|
||||
#region Nodes
|
||||
|
||||
[Node("PlayerFellRespawn")] public required Marker3D PlayerRespawnMarker { get; set; }
|
||||
[Node("AnimationPlayer")] public required AnimationPlayer AnimationPlayer { get; set; }
|
||||
[Node("PlayerFellTP")] public required Area3D PlayerFellPlane { get; set; }
|
||||
[Node("DeathPlane")] public required Area3D DeathPlane { get; set; }
|
||||
|
||||
#endregion
|
||||
|
||||
private Node3D? Respawnabble { get; set; }
|
||||
[Node("PlayerFellRespawn")] private Marker3D? PlayerRespawnMarker { get; set; }
|
||||
private AnimationPlayer? _animationPlayer;
|
||||
private Node3D? _respawnabble;
|
||||
|
||||
#region Exports
|
||||
|
||||
[Export] public WeaponInventory? InitialWeaponInventory { get; set; }
|
||||
[Export] public int MaxNumberOfProjectiles { get; set; } = 3;
|
||||
[Export] public WaveContent? WaveContent { get; set; }
|
||||
|
||||
#endregion
|
||||
private Area3D? _playerFellPlane;
|
||||
private Area3D? _deathPlane;
|
||||
|
||||
public required InventoryManager InventoryManager { get; set; }
|
||||
InventoryManager IProvide<InventoryManager>.Value() => InventoryManager;
|
||||
|
||||
TagsManager IProvide<TagsManager>.Value() => ForgeManagers.Instance.TagsManager;
|
||||
CuesManager IProvide<CuesManager>.Value() => ForgeManagers.Instance.CuesManager;
|
||||
|
||||
public required TokenManager TokenManager { get; set; }
|
||||
TokenManager IProvide<TokenManager>.Value() => TokenManager;
|
||||
|
||||
public required WaveManager WaveManager { get; set; }
|
||||
WaveManager IProvide<WaveManager>.Value() => WaveManager;
|
||||
|
||||
public void OnReady()
|
||||
{
|
||||
PlayerFellPlane.BodyEntered += StartResetPlayerAnimation;
|
||||
DeathPlane.BodyEntered += KillEnemy;
|
||||
_animationPlayer = GetNode<AnimationPlayer>("AnimationPlayer");
|
||||
|
||||
InventoryManager = new InventoryManager();
|
||||
if (InitialWeaponInventory != null)
|
||||
InventoryManager.InitializeFromResource(InitialWeaponInventory);
|
||||
AddChild(InventoryManager);
|
||||
_playerFellPlane = GetNode<Area3D>("PlayerFellTP");
|
||||
_deathPlane = GetNode<Area3D>("DeathPlane");
|
||||
|
||||
TokenManager = new TokenManager();
|
||||
TokenManager.Initialize(MaxNumberOfProjectiles);
|
||||
AddChild(TokenManager);
|
||||
if (PlayerRespawnMarker == null) throw new Exception("Player respawn marker is null");
|
||||
if (_animationPlayer == null) throw new Exception("Animation player is null");
|
||||
if (_playerFellPlane == null) throw new Exception("Player reset plane is null");
|
||||
if (_deathPlane == null) throw new Exception("Enemy death plane is null");
|
||||
|
||||
WaveManager = new WaveManager();
|
||||
if (WaveContent != null)
|
||||
WaveManager.InitializeFromResource(WaveContent);
|
||||
AddChild(WaveManager);
|
||||
|
||||
_playerFellPlane.BodyEntered += StartResetPlayerAnimation;
|
||||
_deathPlane.BodyEntered += KillEnemy;
|
||||
|
||||
InventoryManager = new InventoryManager();
|
||||
AddChild(InventoryManager);
|
||||
this.Provide();
|
||||
}
|
||||
|
||||
|
||||
public void OnProvided()
|
||||
{
|
||||
if (WaveContent != null)
|
||||
GetTree().CreateTimer(3).Timeout += WaveManager.StartWaves;
|
||||
// You can optionally implement this method. It gets called once you call
|
||||
// this.Provide() to inform AutoInject that the provided values are now
|
||||
// available.
|
||||
}
|
||||
|
||||
public void ResetPlayerPosition()
|
||||
{
|
||||
if (Respawnabble == null || PlayerRespawnMarker == null) throw new Exception("Player or respawn marker is null");
|
||||
Respawnabble.GlobalPosition = PlayerRespawnMarker.GlobalPosition;
|
||||
if (_respawnabble == null || PlayerRespawnMarker == null) throw new Exception("Player or respawn marker is null");
|
||||
_respawnabble.GlobalPosition = PlayerRespawnMarker.GlobalPosition;
|
||||
}
|
||||
|
||||
public void StartResetPlayerAnimation(Node3D body)
|
||||
@@ -96,18 +66,23 @@ public partial class MainSceneTemplate : Node3D,
|
||||
weapon.SetLinearVelocity(Vector3.Down);
|
||||
return;
|
||||
}
|
||||
Respawnabble = body as PlayerController;
|
||||
if (Respawnabble == null || AnimationPlayer == null) throw new Exception("Player or anim player is null");
|
||||
AnimationPlayer.Play("player_fell");
|
||||
_respawnabble = body as PlayerController;
|
||||
if (_respawnabble == null || _animationPlayer == null) throw new Exception("Player or anim player is null");
|
||||
_animationPlayer.Play("player_fell");
|
||||
}
|
||||
|
||||
public void KillEnemy(Node3D body)
|
||||
{
|
||||
if (body is not IKillable killable)
|
||||
{
|
||||
// body.QueueFree();
|
||||
body.QueueFree();
|
||||
return;
|
||||
}
|
||||
killable.Kill();
|
||||
if (killable is not IHealthable healthable)
|
||||
{
|
||||
body.QueueFree();
|
||||
return;
|
||||
}
|
||||
killable.Kill(healthable);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7,6 +7,8 @@
|
||||
[ext_resource type="PackedScene" uid="uid://cmlud1hwkd6sv" path="res://scenes/enemies/flying_enemy/flying_enemy.tscn" id="5_dl1un"]
|
||||
[ext_resource type="Script" uid="uid://dtpxijlnb2c5" path="res://scenes/components/movement/RMovement.cs" id="6_465vr"]
|
||||
[ext_resource type="PackedScene" uid="uid://dxt0e2ugmttqq" path="res://scenes/enemies/grounded_enemy/grounded_enemy.tscn" id="7_egib5"]
|
||||
[ext_resource type="Script" uid="uid://baiapod3csndf" path="res://scenes/components/health/RHealth.cs" id="8_a01g8"]
|
||||
[ext_resource type="Script" uid="uid://jitubgv6judn" path="res://scenes/components/damage/RDamage.cs" id="9_doqxp"]
|
||||
[ext_resource type="PackedScene" uid="uid://b8aet6m4m2i83" path="res://scenes/tuto_trigger/TutoTrigger.tscn" id="10_vqwwk"]
|
||||
[ext_resource type="Texture2D" uid="uid://nrhxjdpuje3f" path="res://assets/ui/input-prompts/Xbox Series/Vector/xbox_lt_outline.svg" id="11_bdsxx"]
|
||||
[ext_resource type="Texture2D" uid="uid://dx2mk8qd6g8uh" path="res://assets/ui/input-prompts/Keyboard & Mouse/Vector/mouse_right_outline.svg" id="12_2usyc"]
|
||||
@@ -16,12 +18,39 @@
|
||||
[ext_resource type="Texture2D" uid="uid://bhlrmh5v3fa2n" path="res://assets/ui/input-prompts/Keyboard & Mouse/Vector/mouse_left_outline.svg" id="16_ca01l"]
|
||||
[ext_resource type="Texture2D" uid="uid://b580m114ivbse" path="res://assets/ui/input-prompts/Xbox Series/Vector/xbox_button_menu_outline.svg" id="17_5461m"]
|
||||
[ext_resource type="Texture2D" uid="uid://goerc3svgoqd" path="res://assets/ui/input-prompts/Keyboard & Mouse/Vector/keyboard_escape_outline.svg" id="18_22eiu"]
|
||||
[ext_resource type="Texture2D" uid="uid://db6uqhcmcfs5t" path="res://assets/ui/input-prompts/Xbox Series/Vector/xbox_lb_outline.svg" id="19_ci5dp"]
|
||||
[ext_resource type="Texture2D" uid="uid://ybwqghk70io" path="res://assets/ui/input-prompts/Keyboard & Mouse/Vector/keyboard_f_outline.svg" id="20_4ouww"]
|
||||
|
||||
[sub_resource type="Resource" id="Resource_nwk5u"]
|
||||
script = ExtResource("6_465vr")
|
||||
GravityModifier = 5.0
|
||||
metadata/_custom_type_script = "uid://dtpxijlnb2c5"
|
||||
|
||||
[sub_resource type="Resource" id="Resource_xy0m1"]
|
||||
script = ExtResource("8_a01g8")
|
||||
StartingHealth = 100.0
|
||||
metadata/_custom_type_script = "uid://baiapod3csndf"
|
||||
|
||||
[sub_resource type="Resource" id="Resource_invhv"]
|
||||
script = ExtResource("8_a01g8")
|
||||
StartingHealth = 1.0
|
||||
metadata/_custom_type_script = "uid://baiapod3csndf"
|
||||
|
||||
[sub_resource type="Resource" id="Resource_cgfmf"]
|
||||
script = ExtResource("9_doqxp")
|
||||
DamageType = 2
|
||||
metadata/_custom_type_script = "uid://jitubgv6judn"
|
||||
|
||||
[sub_resource type="Resource" id="Resource_05lnh"]
|
||||
script = ExtResource("8_a01g8")
|
||||
StartingHealth = 100.0
|
||||
metadata/_custom_type_script = "uid://baiapod3csndf"
|
||||
|
||||
[sub_resource type="Resource" id="Resource_t5o40"]
|
||||
script = ExtResource("8_a01g8")
|
||||
StartingHealth = 100.0
|
||||
metadata/_custom_type_script = "uid://baiapod3csndf"
|
||||
|
||||
[sub_resource type="BoxShape3D" id="BoxShape3D_xy0m1"]
|
||||
size = Vector3(3, 3.75, 3)
|
||||
|
||||
@@ -35,7 +64,7 @@ size = Vector3(5, 2.25, 3.75)
|
||||
size = Vector3(5.5, 4.5, 2)
|
||||
|
||||
[sub_resource type="BoxShape3D" id="BoxShape3D_prjj8"]
|
||||
size = Vector3(2, 3.25, 4)
|
||||
size = Vector3(2, 3.25, 5.25)
|
||||
|
||||
[sub_resource type="BoxShape3D" id="BoxShape3D_trte5"]
|
||||
size = Vector3(6.75, 8.25, 7.25)
|
||||
@@ -56,18 +85,6 @@ use_collision = true
|
||||
size = Vector3(1, 17.5, 9.5)
|
||||
material = ExtResource("3_4m8g1")
|
||||
|
||||
[node name="CSGBox3D109" type="CSGBox3D" parent="Playground/PlaytestArena" index="89" unique_id=167333800]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 50, 24.75, -41.74998)
|
||||
use_collision = true
|
||||
size = Vector3(1, 1.5, 9.5)
|
||||
material = ExtResource("3_4m8g1")
|
||||
|
||||
[node name="CSGBox3D112" type="CSGBox3D" parent="Playground/PlaytestArena" index="90" unique_id=2075934946]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 45.5, 24.75, -46.999954)
|
||||
use_collision = true
|
||||
size = Vector3(10, 1.5, 1)
|
||||
material = ExtResource("3_4m8g1")
|
||||
|
||||
[node name="Targets" type="Node3D" parent="Playground" index="1" unique_id=1727473773]
|
||||
|
||||
[node name="FixedDashthroughTarget" parent="Playground/Targets" index="0" unique_id=1291663508 instance=ExtResource("4_4u5eu")]
|
||||
@@ -167,126 +184,151 @@ RMovement = SubResource("Resource_nwk5u")
|
||||
[node name="Enemy3" parent="Playground/GroundedEnemies" index="0" unique_id=1159989424 node_paths=PackedStringArray("Target") instance=ExtResource("7_egib5")]
|
||||
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 25, 0, -8.336809)
|
||||
Target = NodePath("../../../Player")
|
||||
RHealth = SubResource("Resource_xy0m1")
|
||||
RMovement = SubResource("Resource_nwk5u")
|
||||
|
||||
[node name="Enemy11" parent="Playground/GroundedEnemies" index="1" unique_id=1747444936 node_paths=PackedStringArray("Target") instance=ExtResource("7_egib5")]
|
||||
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 17, 8, 3.6631908)
|
||||
Target = NodePath("../../../Player")
|
||||
RHealth = SubResource("Resource_xy0m1")
|
||||
RMovement = SubResource("Resource_nwk5u")
|
||||
|
||||
[node name="Enemy12" parent="Playground/GroundedEnemies" index="2" unique_id=283117081 node_paths=PackedStringArray("Target") instance=ExtResource("7_egib5")]
|
||||
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 36.5, 11, -4.836809)
|
||||
Target = NodePath("../../../Player")
|
||||
RHealth = SubResource("Resource_xy0m1")
|
||||
RMovement = SubResource("Resource_nwk5u")
|
||||
|
||||
[node name="Enemy13" parent="Playground/GroundedEnemies" index="3" unique_id=970022638 node_paths=PackedStringArray("Target") instance=ExtResource("7_egib5")]
|
||||
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 36.5, 12, -19.33681)
|
||||
Target = NodePath("../../../Player")
|
||||
RHealth = SubResource("Resource_xy0m1")
|
||||
RMovement = SubResource("Resource_nwk5u")
|
||||
|
||||
[node name="Enemy18" parent="Playground/GroundedEnemies" index="4" unique_id=2077088475 node_paths=PackedStringArray("Target") instance=ExtResource("7_egib5")]
|
||||
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 30.5, 12, -19.33681)
|
||||
Target = NodePath("../../../Player")
|
||||
RHealth = SubResource("Resource_xy0m1")
|
||||
RMovement = SubResource("Resource_nwk5u")
|
||||
|
||||
[node name="Enemy19" parent="Playground/GroundedEnemies" index="5" unique_id=2023773341 node_paths=PackedStringArray("Target") instance=ExtResource("7_egib5")]
|
||||
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 36.5, 7.5, -19.33681)
|
||||
Target = NodePath("../../../Player")
|
||||
RHealth = SubResource("Resource_xy0m1")
|
||||
RMovement = SubResource("Resource_nwk5u")
|
||||
|
||||
[node name="Enemy25" parent="Playground/GroundedEnemies" index="6" unique_id=1101329723 node_paths=PackedStringArray("Target") instance=ExtResource("7_egib5")]
|
||||
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 46, 7.5, -19.33681)
|
||||
Target = NodePath("../../../Player")
|
||||
RHealth = SubResource("Resource_xy0m1")
|
||||
RMovement = SubResource("Resource_nwk5u")
|
||||
|
||||
[node name="Enemy26" parent="Playground/GroundedEnemies" index="7" unique_id=855220553 node_paths=PackedStringArray("Target") instance=ExtResource("7_egib5")]
|
||||
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 46, 12, -35.336807)
|
||||
Target = NodePath("../../../Player")
|
||||
RHealth = SubResource("Resource_xy0m1")
|
||||
RMovement = SubResource("Resource_nwk5u")
|
||||
|
||||
[node name="Enemy20" parent="Playground/GroundedEnemies" index="8" unique_id=1255215986 node_paths=PackedStringArray("Target") instance=ExtResource("7_egib5")]
|
||||
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 30.5, 7.5, -19.33681)
|
||||
Target = NodePath("../../../Player")
|
||||
RHealth = SubResource("Resource_xy0m1")
|
||||
RMovement = SubResource("Resource_nwk5u")
|
||||
|
||||
[node name="Enemy21" parent="Playground/GroundedEnemies" index="9" unique_id=2098915426 node_paths=PackedStringArray("Target") instance=ExtResource("7_egib5")]
|
||||
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 36.5, 0.5, -19.33681)
|
||||
Target = NodePath("../../../Player")
|
||||
RHealth = SubResource("Resource_xy0m1")
|
||||
RMovement = SubResource("Resource_nwk5u")
|
||||
|
||||
[node name="Enemy22" parent="Playground/GroundedEnemies" index="10" unique_id=246912749 node_paths=PackedStringArray("Target") instance=ExtResource("7_egib5")]
|
||||
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 30.5, 0.5, -19.33681)
|
||||
Target = NodePath("../../../Player")
|
||||
RHealth = SubResource("Resource_xy0m1")
|
||||
RMovement = SubResource("Resource_nwk5u")
|
||||
|
||||
[node name="Enemy14" parent="Playground/GroundedEnemies" index="11" unique_id=211015190 node_paths=PackedStringArray("Target") instance=ExtResource("7_egib5")]
|
||||
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 41, 17.5, -33.336807)
|
||||
Target = NodePath("../../../Player")
|
||||
RHealth = SubResource("Resource_xy0m1")
|
||||
RMovement = SubResource("Resource_nwk5u")
|
||||
|
||||
[node name="Enemy15" parent="Playground/GroundedEnemies" index="12" unique_id=1164179421 node_paths=PackedStringArray("Target") instance=ExtResource("7_egib5")]
|
||||
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 31, 17.5, -33.336807)
|
||||
Target = NodePath("../../../Player")
|
||||
RHealth = SubResource("Resource_xy0m1")
|
||||
RMovement = SubResource("Resource_nwk5u")
|
||||
|
||||
[node name="Enemy16" parent="Playground/GroundedEnemies" index="13" unique_id=1169725422 node_paths=PackedStringArray("Target") instance=ExtResource("7_egib5")]
|
||||
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 24.5, 17.5, -33.336807)
|
||||
Target = NodePath("../../../Player")
|
||||
RHealth = SubResource("Resource_xy0m1")
|
||||
RMovement = SubResource("Resource_nwk5u")
|
||||
|
||||
[node name="Enemy17" parent="Playground/GroundedEnemies" index="14" unique_id=1951666189 node_paths=PackedStringArray("Target") instance=ExtResource("7_egib5")]
|
||||
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 17.5, 17.5, -22.836807)
|
||||
Target = NodePath("../../../Player")
|
||||
RHealth = SubResource("Resource_xy0m1")
|
||||
RMovement = SubResource("Resource_nwk5u")
|
||||
|
||||
[node name="Enemy23" parent="Playground/GroundedEnemies" index="15" unique_id=1348057502 node_paths=PackedStringArray("Target") instance=ExtResource("7_egib5")]
|
||||
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 17.5, 24.5, -43.336807)
|
||||
Target = NodePath("../../../Player")
|
||||
RHealth = SubResource("Resource_xy0m1")
|
||||
RMovement = SubResource("Resource_nwk5u")
|
||||
|
||||
[node name="Enemy24" parent="Playground/GroundedEnemies" index="16" unique_id=2068813971 node_paths=PackedStringArray("Target") instance=ExtResource("7_egib5")]
|
||||
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 45, 24.5, -43.336803)
|
||||
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 45, 24.5, -43.336807)
|
||||
Target = NodePath("../../../Player")
|
||||
RHealth = SubResource("Resource_xy0m1")
|
||||
RMovement = SubResource("Resource_nwk5u")
|
||||
|
||||
[node name="Enemy4" parent="Playground/GroundedEnemies" index="17" unique_id=366059658 node_paths=PackedStringArray("Target") instance=ExtResource("7_egib5")]
|
||||
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 10.5, 0, -18.33681)
|
||||
Target = NodePath("../../../Player")
|
||||
RHealth = SubResource("Resource_xy0m1")
|
||||
RMovement = SubResource("Resource_nwk5u")
|
||||
|
||||
[node name="Enemy7" parent="Playground/GroundedEnemies" index="18" unique_id=1389063523 node_paths=PackedStringArray("Target") instance=ExtResource("7_egib5")]
|
||||
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 25.5, 4, -27.33681)
|
||||
Target = NodePath("../../../Player")
|
||||
RHealth = SubResource("Resource_xy0m1")
|
||||
RMovement = SubResource("Resource_nwk5u")
|
||||
|
||||
[node name="Enemy27" parent="Playground/GroundedEnemies" index="19" unique_id=854456486 node_paths=PackedStringArray("Target") instance=ExtResource("7_egib5")]
|
||||
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 20, 0, -44.836807)
|
||||
Target = NodePath("../../../Player")
|
||||
RHealth = SubResource("Resource_xy0m1")
|
||||
RMovement = SubResource("Resource_nwk5u")
|
||||
|
||||
[node name="Enemy10" parent="Playground/GroundedEnemies" index="20" unique_id=836898496 node_paths=PackedStringArray("Target") instance=ExtResource("7_egib5")]
|
||||
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 30.5, 11, -33.336807)
|
||||
Target = NodePath("../../../Player")
|
||||
RHealth = SubResource("Resource_xy0m1")
|
||||
RMovement = SubResource("Resource_nwk5u")
|
||||
|
||||
[node name="Enemy8" parent="Playground/GroundedEnemies" index="21" unique_id=1015624071 node_paths=PackedStringArray("Target") instance=ExtResource("7_egib5")]
|
||||
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 34.5, 1.5, -27.33681)
|
||||
Target = NodePath("../../../Player")
|
||||
RHealth = SubResource("Resource_xy0m1")
|
||||
RMovement = SubResource("Resource_nwk5u")
|
||||
|
||||
[node name="Enemy9" parent="Playground/GroundedEnemies" index="22" unique_id=827865590 node_paths=PackedStringArray("Target") instance=ExtResource("7_egib5")]
|
||||
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 46.5, 0, -27.33681)
|
||||
Target = NodePath("../../../Player")
|
||||
RHealth = SubResource("Resource_xy0m1")
|
||||
RMovement = SubResource("Resource_nwk5u")
|
||||
|
||||
[node name="Enemy5" parent="Playground/GroundedEnemies" index="23" unique_id=1267116862 node_paths=PackedStringArray("Target") instance=ExtResource("7_egib5")]
|
||||
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 4, 0, -18.33681)
|
||||
Target = NodePath("../../../Player")
|
||||
RHealth = SubResource("Resource_xy0m1")
|
||||
RMovement = SubResource("Resource_nwk5u")
|
||||
|
||||
[node name="Enemy6" parent="Playground/GroundedEnemies" index="24" unique_id=1147823180 node_paths=PackedStringArray("Target") instance=ExtResource("7_egib5")]
|
||||
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 16.5, 7, -17.33681)
|
||||
Target = NodePath("../../../Player")
|
||||
RHealth = SubResource("Resource_xy0m1")
|
||||
RMovement = SubResource("Resource_nwk5u")
|
||||
|
||||
[node name="Tutorial" type="CSGCombiner3D" parent="." index="8" unique_id=1168290062]
|
||||
@@ -303,16 +345,22 @@ transform = Transform3D(0.5, 0, 0, 0, 0.5, 0, 0, 0, 0.5, 1.3647223, 23.75, -13.7
|
||||
[node name="Enemy28" parent="Tutorial" index="2" unique_id=1765389924 node_paths=PackedStringArray("Target") instance=ExtResource("7_egib5")]
|
||||
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -5, 22, 15.5)
|
||||
Target = NodePath("../../Player")
|
||||
RHealth = SubResource("Resource_invhv")
|
||||
RDamage = SubResource("Resource_cgfmf")
|
||||
RMovement = SubResource("Resource_nwk5u")
|
||||
|
||||
[node name="Enemy29" parent="Tutorial" index="3" unique_id=1071267369 node_paths=PackedStringArray("Target") instance=ExtResource("7_egib5")]
|
||||
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -10, 22, 28.75)
|
||||
Target = NodePath("../../Player")
|
||||
RHealth = SubResource("Resource_05lnh")
|
||||
RDamage = SubResource("Resource_cgfmf")
|
||||
RMovement = SubResource("Resource_nwk5u")
|
||||
|
||||
[node name="Enemy30" parent="Tutorial" index="4" unique_id=1982933011 node_paths=PackedStringArray("Target") instance=ExtResource("7_egib5")]
|
||||
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 0.25, 22, 28.75)
|
||||
Target = NodePath("../../Player")
|
||||
RHealth = SubResource("Resource_t5o40")
|
||||
RDamage = SubResource("Resource_cgfmf")
|
||||
RMovement = SubResource("Resource_nwk5u")
|
||||
|
||||
[node name="Triggers" type="Node3D" parent="Tutorial" index="5" unique_id=1531131828]
|
||||
@@ -355,8 +403,8 @@ shape = SubResource("BoxShape3D_dkfm7")
|
||||
|
||||
[node name="TutoTrigger4" parent="Tutorial/Triggers" index="3" unique_id=321542244 instance=ExtResource("10_vqwwk")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -11.5, 17.75, -27.5)
|
||||
first_input_icon = ExtResource("13_ocbap")
|
||||
first_input_icon_keyboard = ExtResource("14_4hfom")
|
||||
first_input_icon = ExtResource("15_1s3jl")
|
||||
first_input_icon_keyboard = ExtResource("16_ca01l")
|
||||
input_related_text = "at target"
|
||||
tuto_text = "dash through"
|
||||
|
||||
@@ -366,13 +414,13 @@ shape = SubResource("BoxShape3D_nwk5u")
|
||||
|
||||
[node name="TutoTrigger6" parent="Tutorial/Triggers" index="4" unique_id=26112457 instance=ExtResource("10_vqwwk")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -5.75, 22.75, 11.25)
|
||||
first_input_icon = ExtResource("13_ocbap")
|
||||
first_input_icon_keyboard = ExtResource("14_4hfom")
|
||||
first_input_icon = ExtResource("15_1s3jl")
|
||||
first_input_icon_keyboard = ExtResource("16_ca01l")
|
||||
input_related_text = "at enemy"
|
||||
tuto_text = "dash through"
|
||||
|
||||
[node name="CollisionShape3D" type="CollisionShape3D" parent="Tutorial/Triggers/TutoTrigger6" index="1" unique_id=1214410006]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.625, 1.75, -0.125)
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.625, 1.75, -0.75)
|
||||
shape = SubResource("BoxShape3D_prjj8")
|
||||
|
||||
[node name="TutoTrigger7" parent="Tutorial/Triggers" index="5" unique_id=271532103 instance=ExtResource("10_vqwwk")]
|
||||
@@ -399,9 +447,10 @@ shape = SubResource("BoxShape3D_trte5")
|
||||
|
||||
[node name="TutoTrigger8" parent="Tutorial/Triggers" index="7" unique_id=36196488 instance=ExtResource("10_vqwwk")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -5, 21.75, 28.25)
|
||||
first_input_icon = ExtResource("15_1s3jl")
|
||||
first_input_icon_keyboard = ExtResource("16_ca01l")
|
||||
tuto_text = "hit"
|
||||
first_input_icon = ExtResource("19_ci5dp")
|
||||
first_input_icon_keyboard = ExtResource("20_4ouww")
|
||||
input_related_text = "at enemy"
|
||||
tuto_text = "knockback"
|
||||
|
||||
[node name="CollisionShape3D" type="CollisionShape3D" parent="Tutorial/Triggers/TutoTrigger8" index="1" unique_id=929676345]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.125, 1.875, 0.375)
|
||||
@@ -567,15 +616,15 @@ size = Vector3(7.25, 7.75, 2)
|
||||
material = ExtResource("3_4m8g1")
|
||||
|
||||
[node name="CSGBox3D124" type="CSGBox3D" parent="Tutorial/DashWithMantle" index="26" unique_id=1068505352]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 10.5, 19.237345, 11.25)
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 10.5, 19.487345, 11.25)
|
||||
use_collision = true
|
||||
size = Vector3(3, 4.5, 8.5)
|
||||
size = Vector3(3, 5, 8.5)
|
||||
material = ExtResource("3_4m8g1")
|
||||
|
||||
[node name="CSGBox3D129" type="CSGBox3D" parent="Tutorial/DashWithMantle" index="27" unique_id=302301078]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 7.25, 19.487345, 38)
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 7.25, 19.487345, 38.625)
|
||||
use_collision = true
|
||||
size = Vector3(9.5, 5, 13)
|
||||
size = Vector3(9.5, 5, 11.75)
|
||||
material = ExtResource("3_4m8g1")
|
||||
|
||||
[node name="CSGBox3D133" type="CSGBox3D" parent="Tutorial/DashWithMantle" index="28" unique_id=672467040]
|
||||
@@ -726,9 +775,5 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.5, 1.5, 0)
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.5, 25, 4)
|
||||
|
||||
[node name="OmniLight3D2" type="OmniLight3D" parent="." index="14" unique_id=2016820716]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.5, 25, -10)
|
||||
omni_range = 12.0
|
||||
|
||||
[node name="OmniLight3D3" type="OmniLight3D" parent="." index="15" unique_id=845858088]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.5, 25, -25.5)
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.5, 25, -9.5)
|
||||
omni_range = 12.0
|
||||
|
||||
@@ -1,33 +1,24 @@
|
||||
[gd_scene format=3 uid="uid://ndnor8g7kq07"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://55wehh6xombr" path="res://maps/_templates/main_scene_template.tscn" id="1_k7f42"]
|
||||
[ext_resource type="Resource" uid="uid://ifeavnlps7hy" path="res://forge/resources/behaviors/exploding_sword.tres" id="2_ctafv"]
|
||||
[ext_resource type="PackedScene" uid="uid://y77cdg7gg3y7" path="res://maps/levels/_arenas/playtest_1.tscn" id="2_kutfq"]
|
||||
[ext_resource type="Material" uid="uid://31aulub2nqov" path="res://assets/materials/greybox/m_greybox.tres" id="3_1qo78"]
|
||||
[ext_resource type="Script" uid="uid://cgaahnfgxcrr6" path="res://managers/WeaponInventory.cs" id="3_nix1q"]
|
||||
[ext_resource type="PackedScene" uid="uid://c305mfrtumcyq" path="res://scenes/spawners/spawner.tscn" id="4_jaqjx"]
|
||||
[ext_resource type="PackedScene" uid="uid://dxt0e2ugmttqq" path="res://scenes/enemies/grounded_enemy/grounded_enemy.tscn" id="5_iq67o"]
|
||||
[ext_resource type="Resource" uid="uid://bqq6uukbdfysr" path="res://scenes/enemies/grounded_enemy/grounded_enemy_movement.tres" id="6_l44fp"]
|
||||
[ext_resource type="Resource" uid="uid://bohbojc68j7y1" path="res://scenes/enemies/grounded_enemy/grounded_enemy_health.tres" id="7_ucbss"]
|
||||
[ext_resource type="Resource" uid="uid://otfc2snh8umc" path="res://scenes/enemies/grounded_enemy/grounded_enemy_damage.tres" id="8_2brdd"]
|
||||
[ext_resource type="PackedScene" uid="uid://cmlud1hwkd6sv" path="res://scenes/enemies/flying_enemy/flying_enemy.tscn" id="9_4vdsh"]
|
||||
[ext_resource type="Resource" uid="uid://bwqjaom4k7rc3" path="res://scenes/enemies/flying_enemy/flying_enemy_movement.tres" id="10_levmk"]
|
||||
[ext_resource type="Resource" uid="uid://dg1xbjhyhgnnk" path="res://scenes/enemies/flying_enemy/flying_enemy_health.tres" id="11_5jlg7"]
|
||||
[ext_resource type="Resource" uid="uid://dgo65k2ceqfvy" path="res://scenes/enemies/flying_enemy/flying_enemy_damage.tres" id="12_pjgox"]
|
||||
[ext_resource type="PackedScene" uid="uid://qup00a7x2sji" path="res://scenes/fixed_dash_target/fixed_dashthrough_target.tscn" id="13_iq67o"]
|
||||
[ext_resource type="PackedScene" uid="uid://b8aet6m4m2i83" path="res://scenes/tuto_trigger/TutoTrigger.tscn" id="14_lthgu"]
|
||||
|
||||
[sub_resource type="Resource" id="Resource_udq24"]
|
||||
script = ExtResource("3_nix1q")
|
||||
OnWeaponStartedFlyingAbilities = Array[Object]([ExtResource("2_ctafv")])
|
||||
OnWeaponFlyingTickAbilities = Array[Object]([ExtResource("2_ctafv")])
|
||||
OnWeaponStoppedFlyingAbilities = Array[Object]([ExtResource("2_ctafv")])
|
||||
OnWeaponStartedPlantedAbilities = null
|
||||
OnWeaponPlantedTickAbilities = null
|
||||
OnWeaponStoppedPlantedAbilities = null
|
||||
metadata/_custom_type_script = "uid://cgaahnfgxcrr6"
|
||||
|
||||
[sub_resource type="BoxShape3D" id="BoxShape3D_lthgu"]
|
||||
size = Vector3(7.5, 3.75, 10.25)
|
||||
|
||||
[node name="Main" unique_id=955321579 instance=ExtResource("1_k7f42")]
|
||||
InitialWeaponInventory = SubResource("Resource_udq24")
|
||||
|
||||
[node name="PlaytestArena" parent="." index="6" unique_id=664535670 instance=ExtResource("2_kutfq")]
|
||||
|
||||
@@ -41,13 +32,17 @@ material = ExtResource("3_1qo78")
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 6.5, 1, -42.5)
|
||||
EnemyToSpawn = ExtResource("5_iq67o")
|
||||
MovementInputs = ExtResource("6_l44fp")
|
||||
HealthInputs = ExtResource("7_ucbss")
|
||||
DamageInputs = ExtResource("8_2brdd")
|
||||
Target = NodePath("../Player")
|
||||
SpawnInterval = 1.808
|
||||
SpawnInterval = 5.0
|
||||
|
||||
[node name="GroundedSpawner2" parent="." index="9" unique_id=1026317919 node_paths=PackedStringArray("Target") instance=ExtResource("4_jaqjx")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 46.5, 11.5, -34.5)
|
||||
EnemyToSpawn = ExtResource("5_iq67o")
|
||||
MovementInputs = ExtResource("6_l44fp")
|
||||
HealthInputs = ExtResource("7_ucbss")
|
||||
DamageInputs = ExtResource("8_2brdd")
|
||||
Target = NodePath("../Player")
|
||||
SpawnInterval = 5.0
|
||||
|
||||
@@ -55,6 +50,8 @@ SpawnInterval = 5.0
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 44.5, 0, -3)
|
||||
EnemyToSpawn = ExtResource("5_iq67o")
|
||||
MovementInputs = ExtResource("6_l44fp")
|
||||
HealthInputs = ExtResource("7_ucbss")
|
||||
DamageInputs = ExtResource("8_2brdd")
|
||||
Target = NodePath("../Player")
|
||||
SpawnInterval = 5.0
|
||||
|
||||
@@ -62,6 +59,8 @@ SpawnInterval = 5.0
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 16.5, 19, -19.5)
|
||||
EnemyToSpawn = ExtResource("9_4vdsh")
|
||||
MovementInputs = ExtResource("10_levmk")
|
||||
HealthInputs = ExtResource("11_5jlg7")
|
||||
DamageInputs = ExtResource("12_pjgox")
|
||||
Target = NodePath("../Player")
|
||||
SpawnInterval = 5.0
|
||||
|
||||
@@ -69,6 +68,8 @@ SpawnInterval = 5.0
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 45.5, 25.5, -42.5)
|
||||
EnemyToSpawn = ExtResource("9_4vdsh")
|
||||
MovementInputs = ExtResource("10_levmk")
|
||||
HealthInputs = ExtResource("11_5jlg7")
|
||||
DamageInputs = ExtResource("12_pjgox")
|
||||
Target = NodePath("../Player")
|
||||
SpawnInterval = 5.0
|
||||
|
||||
|
||||
@@ -1,348 +0,0 @@
|
||||
[gd_scene format=3 uid="uid://b2g2gys4dopmn"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://55wehh6xombr" path="res://maps/_templates/main_scene_template.tscn" id="1_pxwoj"]
|
||||
[ext_resource type="PackedScene" uid="uid://y77cdg7gg3y7" path="res://maps/levels/_arenas/playtest_1.tscn" id="2_apgv3"]
|
||||
[ext_resource type="Material" uid="uid://31aulub2nqov" path="res://assets/materials/greybox/m_greybox.tres" id="3_452yy"]
|
||||
[ext_resource type="Script" uid="uid://rhdkfi7nuvu1" path="res://managers/Wave/EnemyDescription.cs" id="3_a6jwd"]
|
||||
[ext_resource type="Resource" uid="uid://cfyafss8ncbhh" path="res://managers/Wave/resources/flying_enemy_desc.tres" id="3_re07p"]
|
||||
[ext_resource type="PackedScene" uid="uid://c305mfrtumcyq" path="res://scenes/spawners/spawner.tscn" id="4_6q0yp"]
|
||||
[ext_resource type="Resource" uid="uid://3clksludry8g" path="res://managers/Wave/resources/grounded_enemy_desc.tres" id="4_7ijxg"]
|
||||
[ext_resource type="Script" uid="uid://cr8wog705ane6" path="res://managers/Wave/SingleWave.cs" id="5_7ijxg"]
|
||||
[ext_resource type="Resource" uid="uid://lnturc3ibr5c" path="res://managers/Wave/resources/projectile_enemy_desc.tres" id="5_hm1dp"]
|
||||
[ext_resource type="Script" uid="uid://dijmv0wqc1xuv" path="res://managers/Wave/WaveContent.cs" id="6_hm1dp"]
|
||||
|
||||
[sub_resource type="Resource" id="Resource_7ijxg"]
|
||||
script = ExtResource("5_7ijxg")
|
||||
EnemiesToSpawn = Dictionary[ExtResource("3_a6jwd"), int]({
|
||||
ExtResource("4_7ijxg"): 4
|
||||
})
|
||||
metadata/_custom_type_script = "uid://cr8wog705ane6"
|
||||
|
||||
[sub_resource type="Resource" id="Resource_hm1dp"]
|
||||
script = ExtResource("5_7ijxg")
|
||||
EnemiesToSpawn = Dictionary[ExtResource("3_a6jwd"), int]({
|
||||
ExtResource("4_7ijxg"): 8,
|
||||
ExtResource("3_re07p"): 3
|
||||
})
|
||||
metadata/_custom_type_script = "uid://cr8wog705ane6"
|
||||
|
||||
[sub_resource type="Resource" id="Resource_a6jwd"]
|
||||
script = ExtResource("5_7ijxg")
|
||||
EnemiesToSpawn = Dictionary[ExtResource("3_a6jwd"), int]({
|
||||
ExtResource("5_hm1dp"): 3
|
||||
})
|
||||
metadata/_custom_type_script = "uid://cr8wog705ane6"
|
||||
|
||||
[sub_resource type="Resource" id="Resource_wllel"]
|
||||
script = ExtResource("5_7ijxg")
|
||||
EnemiesToSpawn = Dictionary[ExtResource("3_a6jwd"), int]({
|
||||
ExtResource("4_7ijxg"): 4,
|
||||
ExtResource("5_hm1dp"): 4,
|
||||
ExtResource("3_re07p"): 4
|
||||
})
|
||||
metadata/_custom_type_script = "uid://cr8wog705ane6"
|
||||
|
||||
[sub_resource type="Resource" id="Resource_re07p"]
|
||||
script = ExtResource("5_7ijxg")
|
||||
EnemiesToSpawn = Dictionary[ExtResource("3_a6jwd"), int]({
|
||||
ExtResource("3_re07p"): 15
|
||||
})
|
||||
metadata/_custom_type_script = "uid://cr8wog705ane6"
|
||||
|
||||
[sub_resource type="Resource" id="Resource_t6pb5"]
|
||||
script = ExtResource("5_7ijxg")
|
||||
EnemiesToSpawn = Dictionary[ExtResource("3_a6jwd"), int]({
|
||||
ExtResource("4_7ijxg"): 15,
|
||||
ExtResource("5_hm1dp"): 10,
|
||||
ExtResource("3_re07p"): 10
|
||||
})
|
||||
metadata/_custom_type_script = "uid://cr8wog705ane6"
|
||||
|
||||
[sub_resource type="Resource" id="Resource_e88eg"]
|
||||
script = ExtResource("6_hm1dp")
|
||||
Waves = Array[Object]([SubResource("Resource_7ijxg"), SubResource("Resource_hm1dp"), SubResource("Resource_a6jwd"), SubResource("Resource_wllel"), SubResource("Resource_re07p"), SubResource("Resource_t6pb5")])
|
||||
metadata/_custom_type_script = "uid://dijmv0wqc1xuv"
|
||||
|
||||
[node name="Main" unique_id=955321579 instance=ExtResource("1_pxwoj")]
|
||||
WaveContent = SubResource("Resource_e88eg")
|
||||
|
||||
[node name="PlaytestArena" parent="." index="12" unique_id=664535670 instance=ExtResource("2_apgv3")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -16, 0, 9.5)
|
||||
|
||||
[node name="CSGBox3D108" type="CSGBox3D" parent="PlaytestArena" index="89" unique_id=94297910]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.5, 8.75, 2.25)
|
||||
use_collision = true
|
||||
size = Vector3(1, 17.5, 9.5)
|
||||
material = ExtResource("3_452yy")
|
||||
|
||||
[node name="Spawner2" parent="." index="13" unique_id=1982641431 node_paths=PackedStringArray("Target") instance=ExtResource("4_6q0yp")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -8.5, 1, -4)
|
||||
SupportedEnemyTypes = Array[int]([0])
|
||||
Target = NodePath("../Player")
|
||||
IsActiveOnStart = false
|
||||
|
||||
[node name="Spawner3" parent="." index="14" unique_id=1743153579 node_paths=PackedStringArray("Target") instance=ExtResource("4_6q0yp")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4.5, 1, -4)
|
||||
SupportedEnemyTypes = Array[int]([1])
|
||||
Target = NodePath("../Player")
|
||||
IsActiveOnStart = false
|
||||
|
||||
[node name="Spawner4" parent="." index="15" unique_id=536869732 node_paths=PackedStringArray("Target") instance=ExtResource("4_6q0yp")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 8, 1, -4)
|
||||
SupportedEnemyTypes = Array[int]([1, 0])
|
||||
Target = NodePath("../Player")
|
||||
IsActiveOnStart = false
|
||||
|
||||
[node name="Spawner5" parent="." index="16" unique_id=275129467 node_paths=PackedStringArray("Target") instance=ExtResource("4_6q0yp")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 13, 1, -4)
|
||||
SupportedEnemyTypes = Array[int]([1, 0])
|
||||
Target = NodePath("../Player")
|
||||
IsActiveOnStart = false
|
||||
|
||||
[node name="Spawners" type="Node3D" parent="." index="17" unique_id=1784503796]
|
||||
|
||||
[node name="Grounded" type="Node3D" parent="Spawners" index="0" unique_id=2135113359]
|
||||
|
||||
[node name="Spawner" parent="Spawners/Grounded" index="0" unique_id=580981173 node_paths=PackedStringArray("Target") instance=ExtResource("4_6q0yp")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -12, 1, -4)
|
||||
SupportedEnemyTypes = Array[int]([0])
|
||||
Target = NodePath("../../../Player")
|
||||
IsActiveOnStart = false
|
||||
|
||||
[node name="Spawner13" parent="Spawners/Grounded" index="1" unique_id=771710160 node_paths=PackedStringArray("Target") instance=ExtResource("4_6q0yp")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, -4)
|
||||
SupportedEnemyTypes = Array[int]([0])
|
||||
Target = NodePath("../../../Player")
|
||||
IsActiveOnStart = false
|
||||
|
||||
[node name="Spawner14" parent="Spawners/Grounded" index="2" unique_id=947491829 node_paths=PackedStringArray("Target") instance=ExtResource("4_6q0yp")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 12.5, 1, -4)
|
||||
SupportedEnemyTypes = Array[int]([0])
|
||||
Target = NodePath("../../../Player")
|
||||
IsActiveOnStart = false
|
||||
|
||||
[node name="Spawner15" parent="Spawners/Grounded" index="3" unique_id=519369782 node_paths=PackedStringArray("Target") instance=ExtResource("4_6q0yp")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 12.5, 1, 5.5)
|
||||
SupportedEnemyTypes = Array[int]([0])
|
||||
Target = NodePath("../../../Player")
|
||||
IsActiveOnStart = false
|
||||
|
||||
[node name="Spawner16" parent="Spawners/Grounded" index="4" unique_id=1219755801 node_paths=PackedStringArray("Target") instance=ExtResource("4_6q0yp")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 12.5, 1, -9.5)
|
||||
SupportedEnemyTypes = Array[int]([0])
|
||||
Target = NodePath("../../../Player")
|
||||
IsActiveOnStart = false
|
||||
|
||||
[node name="Spawner17" parent="Spawners/Grounded" index="5" unique_id=1403055240 node_paths=PackedStringArray("Target") instance=ExtResource("4_6q0yp")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 22.5, 1, -9.5)
|
||||
SupportedEnemyTypes = Array[int]([0])
|
||||
Target = NodePath("../../../Player")
|
||||
IsActiveOnStart = false
|
||||
|
||||
[node name="Spawner18" parent="Spawners/Grounded" index="6" unique_id=1479410245 node_paths=PackedStringArray("Target") instance=ExtResource("4_6q0yp")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 29.5, 1, 7.5)
|
||||
SupportedEnemyTypes = Array[int]([0])
|
||||
Target = NodePath("../../../Player")
|
||||
IsActiveOnStart = false
|
||||
|
||||
[node name="Spawner19" parent="Spawners/Grounded" index="7" unique_id=1743292696 node_paths=PackedStringArray("Target") instance=ExtResource("4_6q0yp")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 29.5, 7, -9.5)
|
||||
SupportedEnemyTypes = Array[int]([0])
|
||||
Target = NodePath("../../../Player")
|
||||
IsActiveOnStart = false
|
||||
|
||||
[node name="Spawner21" parent="Spawners/Grounded" index="8" unique_id=1801083740 node_paths=PackedStringArray("Target") instance=ExtResource("4_6q0yp")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 29.5, 11.5, -24.5)
|
||||
SupportedEnemyTypes = Array[int]([0])
|
||||
Target = NodePath("../../../Player")
|
||||
IsActiveOnStart = false
|
||||
|
||||
[node name="Spawner22" parent="Spawners/Grounded" index="9" unique_id=1296256003 node_paths=PackedStringArray("Target") instance=ExtResource("4_6q0yp")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 11.5, 11.5, -24.5)
|
||||
SupportedEnemyTypes = Array[int]([0])
|
||||
Target = NodePath("../../../Player")
|
||||
IsActiveOnStart = false
|
||||
|
||||
[node name="Spawner20" parent="Spawners/Grounded" index="10" unique_id=1527237523 node_paths=PackedStringArray("Target") instance=ExtResource("4_6q0yp")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 18.5, 7, -9.5)
|
||||
SupportedEnemyTypes = Array[int]([0])
|
||||
Target = NodePath("../../../Player")
|
||||
IsActiveOnStart = false
|
||||
|
||||
[node name="Spawner2" parent="Spawners/Grounded" index="11" unique_id=834604221 node_paths=PackedStringArray("Target") instance=ExtResource("4_6q0yp")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -12, 1, -23.5)
|
||||
SupportedEnemyTypes = Array[int]([0])
|
||||
Target = NodePath("../../../Player")
|
||||
IsActiveOnStart = false
|
||||
|
||||
[node name="Spawner3" parent="Spawners/Grounded" index="12" unique_id=270195635 node_paths=PackedStringArray("Target") instance=ExtResource("4_6q0yp")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -8, 1, -30.5)
|
||||
SupportedEnemyTypes = Array[int]([0])
|
||||
Target = NodePath("../../../Player")
|
||||
IsActiveOnStart = false
|
||||
|
||||
[node name="Spawner4" parent="Spawners/Grounded" index="13" unique_id=1202580658 node_paths=PackedStringArray("Target") instance=ExtResource("4_6q0yp")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 6, 1, -33)
|
||||
SupportedEnemyTypes = Array[int]([0])
|
||||
Target = NodePath("../../../Player")
|
||||
IsActiveOnStart = false
|
||||
|
||||
[node name="Spawner5" parent="Spawners/Grounded" index="14" unique_id=1987649511 node_paths=PackedStringArray("Target") instance=ExtResource("4_6q0yp")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 11.5, 1, -33)
|
||||
SupportedEnemyTypes = Array[int]([0])
|
||||
Target = NodePath("../../../Player")
|
||||
IsActiveOnStart = false
|
||||
|
||||
[node name="Spawner6" parent="Spawners/Grounded" index="15" unique_id=1276050304 node_paths=PackedStringArray("Target") instance=ExtResource("4_6q0yp")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 26.5, 1, -25)
|
||||
SupportedEnemyTypes = Array[int]([0])
|
||||
Target = NodePath("../../../Player")
|
||||
IsActiveOnStart = false
|
||||
|
||||
[node name="Spawner7" parent="Spawners/Grounded" index="16" unique_id=825475214 node_paths=PackedStringArray("Target") instance=ExtResource("4_6q0yp")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 26.5, 1, -17.5)
|
||||
SupportedEnemyTypes = Array[int]([0])
|
||||
Target = NodePath("../../../Player")
|
||||
IsActiveOnStart = false
|
||||
|
||||
[node name="Spawner8" parent="Spawners/Grounded" index="17" unique_id=1896505808 node_paths=PackedStringArray("Target") instance=ExtResource("4_6q0yp")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.5, 6, -17.5)
|
||||
SupportedEnemyTypes = Array[int]([0])
|
||||
Target = NodePath("../../../Player")
|
||||
IsActiveOnStart = false
|
||||
|
||||
[node name="Spawner11" parent="Spawners/Grounded" index="18" unique_id=1922800453 node_paths=PackedStringArray("Target") instance=ExtResource("4_6q0yp")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 7, -8)
|
||||
SupportedEnemyTypes = Array[int]([0])
|
||||
Target = NodePath("../../../Player")
|
||||
IsActiveOnStart = false
|
||||
|
||||
[node name="Spawner12" parent="Spawners/Grounded" index="19" unique_id=172297553 node_paths=PackedStringArray("Target") instance=ExtResource("4_6q0yp")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -14, 7, -8)
|
||||
SupportedEnemyTypes = Array[int]([0])
|
||||
Target = NodePath("../../../Player")
|
||||
IsActiveOnStart = false
|
||||
|
||||
[node name="Spawner9" parent="Spawners/Grounded" index="20" unique_id=242104600 node_paths=PackedStringArray("Target") instance=ExtResource("4_6q0yp")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 6, 5, -17.5)
|
||||
SupportedEnemyTypes = Array[int]([0])
|
||||
Target = NodePath("../../../Player")
|
||||
IsActiveOnStart = false
|
||||
|
||||
[node name="Spawner10" parent="Spawners/Grounded" index="21" unique_id=1537236940 node_paths=PackedStringArray("Target") instance=ExtResource("4_6q0yp")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 12.5, 3.5, -17.5)
|
||||
SupportedEnemyTypes = Array[int]([0])
|
||||
Target = NodePath("../../../Player")
|
||||
IsActiveOnStart = false
|
||||
|
||||
[node name="Flying" type="Node3D" parent="Spawners" index="1" unique_id=1568736683]
|
||||
|
||||
[node name="Spawner2" parent="Spawners/Flying" index="0" unique_id=540145996 node_paths=PackedStringArray("Target") instance=ExtResource("4_6q0yp")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 26.051147, -34)
|
||||
SupportedEnemyTypes = Array[int]([1])
|
||||
Target = NodePath("../../../Player")
|
||||
IsActiveOnStart = false
|
||||
|
||||
[node name="Spawner3" parent="Spawners/Flying" index="1" unique_id=286744715 node_paths=PackedStringArray("Target") instance=ExtResource("4_6q0yp")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 27, 26.051147, -34)
|
||||
SupportedEnemyTypes = Array[int]([1])
|
||||
Target = NodePath("../../../Player")
|
||||
IsActiveOnStart = false
|
||||
|
||||
[node name="Spawner4" parent="Spawners/Flying" index="2" unique_id=97624405 node_paths=PackedStringArray("Target") instance=ExtResource("4_6q0yp")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 30.5, 26.051147, -31)
|
||||
SupportedEnemyTypes = Array[int]([1])
|
||||
Target = NodePath("../../../Player")
|
||||
IsActiveOnStart = false
|
||||
|
||||
[node name="Spawner5" parent="Spawners/Flying" index="3" unique_id=452318421 node_paths=PackedStringArray("Target") instance=ExtResource("4_6q0yp")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 20.5, 13.051147, 3.5)
|
||||
SupportedEnemyTypes = Array[int]([1])
|
||||
Target = NodePath("../../../Player")
|
||||
IsActiveOnStart = false
|
||||
|
||||
[node name="Spawner6" parent="Spawners/Flying" index="4" unique_id=1238823469 node_paths=PackedStringArray("Target") instance=ExtResource("4_6q0yp")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 20.5, 13.051147, 8)
|
||||
SupportedEnemyTypes = Array[int]([1])
|
||||
Target = NodePath("../../../Player")
|
||||
IsActiveOnStart = false
|
||||
|
||||
[node name="Projectile" type="Node3D" parent="Spawners" index="2" unique_id=1258161549]
|
||||
|
||||
[node name="Spawner3" parent="Spawners/Projectile" index="0" unique_id=1747138734 node_paths=PackedStringArray("Target") instance=ExtResource("4_6q0yp")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 7.5, 8.5)
|
||||
SupportedEnemyTypes = Array[int]([2])
|
||||
Target = NodePath("../../../Player")
|
||||
IsActiveOnStart = false
|
||||
|
||||
[node name="Spawner4" parent="Spawners/Projectile" index="1" unique_id=1503627609 node_paths=PackedStringArray("Target") instance=ExtResource("4_6q0yp")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 7, 11, 9.5)
|
||||
SupportedEnemyTypes = Array[int]([2])
|
||||
Target = NodePath("../../../Player")
|
||||
IsActiveOnStart = false
|
||||
|
||||
[node name="Spawner5" parent="Spawners/Projectile" index="2" unique_id=2041198655 node_paths=PackedStringArray("Target") instance=ExtResource("4_6q0yp")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 20.5, 11, 9.5)
|
||||
SupportedEnemyTypes = Array[int]([2])
|
||||
Target = NodePath("../../../Player")
|
||||
IsActiveOnStart = false
|
||||
|
||||
[node name="Spawner6" parent="Spawners/Projectile" index="3" unique_id=552715567 node_paths=PackedStringArray("Target") instance=ExtResource("4_6q0yp")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 20.5, 11, 1.5)
|
||||
SupportedEnemyTypes = Array[int]([2])
|
||||
Target = NodePath("../../../Player")
|
||||
IsActiveOnStart = false
|
||||
|
||||
[node name="Spawner7" parent="Spawners/Projectile" index="4" unique_id=70054371 node_paths=PackedStringArray("Target") instance=ExtResource("4_6q0yp")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 22.5, 12, -9.5)
|
||||
SupportedEnemyTypes = Array[int]([2])
|
||||
Target = NodePath("../../../Player")
|
||||
IsActiveOnStart = false
|
||||
|
||||
[node name="Spawner8" parent="Spawners/Projectile" index="5" unique_id=1180979948 node_paths=PackedStringArray("Target") instance=ExtResource("4_6q0yp")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 17, 12, -9.5)
|
||||
SupportedEnemyTypes = Array[int]([2])
|
||||
Target = NodePath("../../../Player")
|
||||
IsActiveOnStart = false
|
||||
|
||||
[node name="Spawner9" parent="Spawners/Projectile" index="6" unique_id=1257162636 node_paths=PackedStringArray("Target") instance=ExtResource("4_6q0yp")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 11.5, 12, -9.5)
|
||||
SupportedEnemyTypes = Array[int]([2])
|
||||
Target = NodePath("../../../Player")
|
||||
IsActiveOnStart = false
|
||||
|
||||
[node name="Spawner10" parent="Spawners/Projectile" index="7" unique_id=508868686 node_paths=PackedStringArray("Target") instance=ExtResource("4_6q0yp")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 17.5, -8.5)
|
||||
SupportedEnemyTypes = Array[int]([2])
|
||||
Target = NodePath("../../../Player")
|
||||
IsActiveOnStart = false
|
||||
|
||||
[node name="Spawner11" parent="Spawners/Projectile" index="8" unique_id=1732590308 node_paths=PackedStringArray("Target") instance=ExtResource("4_6q0yp")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 17.5, -17.5)
|
||||
SupportedEnemyTypes = Array[int]([2])
|
||||
Target = NodePath("../../../Player")
|
||||
IsActiveOnStart = false
|
||||
|
||||
[node name="Spawner12" parent="Spawners/Projectile" index="9" unique_id=1601257376 node_paths=PackedStringArray("Target") instance=ExtResource("4_6q0yp")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 7, 17.5, -24.5)
|
||||
SupportedEnemyTypes = Array[int]([2])
|
||||
Target = NodePath("../../../Player")
|
||||
IsActiveOnStart = false
|
||||
|
||||
[node name="Spawner13" parent="Spawners/Projectile" index="10" unique_id=391332199 node_paths=PackedStringArray("Target") instance=ExtResource("4_6q0yp")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 17, 17.5, -24.5)
|
||||
SupportedEnemyTypes = Array[int]([2])
|
||||
Target = NodePath("../../../Player")
|
||||
IsActiveOnStart = false
|
||||
|
||||
[node name="Spawner14" parent="Spawners/Projectile" index="11" unique_id=1920158287 node_paths=PackedStringArray("Target") instance=ExtResource("4_6q0yp")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 29.5, 17.5, -24.5)
|
||||
SupportedEnemyTypes = Array[int]([2])
|
||||
Target = NodePath("../../../Player")
|
||||
IsActiveOnStart = false
|
||||
|
||||
[node name="Spawner15" parent="Spawners/Projectile" index="12" unique_id=1099390523 node_paths=PackedStringArray("Target") instance=ExtResource("4_6q0yp")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -12, 11, -26.5)
|
||||
SupportedEnemyTypes = Array[int]([2])
|
||||
Target = NodePath("../../../Player")
|
||||
IsActiveOnStart = false
|
||||
@@ -5,16 +5,44 @@
|
||||
[ext_resource type="PackedScene" uid="uid://qup00a7x2sji" path="res://scenes/fixed_dash_target/fixed_dashthrough_target.tscn" id="3_j13fh"]
|
||||
[ext_resource type="PackedScene" uid="uid://dxt0e2ugmttqq" path="res://scenes/enemies/grounded_enemy/grounded_enemy.tscn" id="4_1cb4f"]
|
||||
[ext_resource type="Script" uid="uid://dtpxijlnb2c5" path="res://scenes/components/movement/RMovement.cs" id="5_vuwkd"]
|
||||
[ext_resource type="Script" uid="uid://baiapod3csndf" path="res://scenes/components/health/RHealth.cs" id="6_251oa"]
|
||||
[ext_resource type="PackedScene" uid="uid://cmlud1hwkd6sv" path="res://scenes/enemies/flying_enemy/flying_enemy.tscn" id="7_vkl5g"]
|
||||
[ext_resource type="PackedScene" uid="uid://dx3y8sjftqk8f" path="res://scenes/enemies/projectile_enemy/projectile_enemy.tscn" id="10_mm5sa"]
|
||||
[ext_resource type="PackedScene" uid="uid://c305mfrtumcyq" path="res://scenes/spawners/spawner.tscn" id="8_1upfw"]
|
||||
[ext_resource type="Resource" uid="uid://bqq6uukbdfysr" path="res://scenes/enemies/grounded_enemy/grounded_enemy_movement.tres" id="9_ynw2y"]
|
||||
[ext_resource type="Resource" uid="uid://otfc2snh8umc" path="res://scenes/enemies/grounded_enemy/grounded_enemy_damage.tres" id="10_jadgc"]
|
||||
[ext_resource type="Resource" uid="uid://bwqjaom4k7rc3" path="res://scenes/enemies/flying_enemy/flying_enemy_movement.tres" id="11_luuoi"]
|
||||
[ext_resource type="Resource" uid="uid://dg1xbjhyhgnnk" path="res://scenes/enemies/flying_enemy/flying_enemy_health.tres" id="12_4nug6"]
|
||||
[ext_resource type="Resource" uid="uid://dgo65k2ceqfvy" path="res://scenes/enemies/flying_enemy/flying_enemy_damage.tres" id="13_e04qc"]
|
||||
|
||||
[sub_resource type="Resource" id="Resource_xixm3"]
|
||||
script = ExtResource("5_vuwkd")
|
||||
GravityModifier = 5.0
|
||||
metadata/_custom_type_script = "uid://dtpxijlnb2c5"
|
||||
|
||||
[sub_resource type="Resource" id="Resource_p48l4"]
|
||||
script = ExtResource("6_251oa")
|
||||
StartingHealth = 1000.0
|
||||
metadata/_custom_type_script = "uid://baiapod3csndf"
|
||||
|
||||
[sub_resource type="Resource" id="Resource_epn1o"]
|
||||
script = ExtResource("6_251oa")
|
||||
StartingHealth = 1.0
|
||||
metadata/_custom_type_script = "uid://baiapod3csndf"
|
||||
|
||||
[node name="Main" unique_id=1551129541 instance=ExtResource("1_qu1jn")]
|
||||
|
||||
[node name="BackgroundMusicPlayer" parent="." index="0" unique_id=879496303]
|
||||
autoplay = false
|
||||
|
||||
[node name="Player" parent="." index="5" unique_id=1309399929]
|
||||
transform = Transform3D(0.99999994, 0, 0, 0, 1, 0, 0, 0, 0.99999994, 2, 1.5, 9.5)
|
||||
|
||||
[node name="DebugLayer" parent="." index="6" unique_id=294370189]
|
||||
visible = true
|
||||
|
||||
[node name="GuideDebugger" parent="DebugLayer" index="0" unique_id=636020765]
|
||||
visible = false
|
||||
|
||||
[node name="Greybox" type="CSGCombiner3D" parent="." index="7" unique_id=646927976]
|
||||
use_collision = true
|
||||
collision_layer = 256
|
||||
@@ -96,6 +124,7 @@ RMovement = SubResource("Resource_xixm3")
|
||||
[node name="Enemy3" parent="." index="11" unique_id=271578597 node_paths=PackedStringArray("Target") instance=ExtResource("4_1cb4f")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 14, 4, -3.3368092)
|
||||
Target = NodePath("../Player")
|
||||
RHealth = SubResource("Resource_p48l4")
|
||||
RMovement = SubResource("Resource_xixm3")
|
||||
|
||||
[node name="FlyingEnemy" parent="." index="12" unique_id=1167959205 node_paths=PackedStringArray("Target") instance=ExtResource("7_vkl5g")]
|
||||
@@ -108,17 +137,20 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 10, 7, -16)
|
||||
Target = NodePath("../Player")
|
||||
RMovement = SubResource("Resource_xixm3")
|
||||
|
||||
[node name="ProjectileEnemy" parent="." index="14" unique_id=1747444936 node_paths=PackedStringArray("Target") instance=ExtResource("10_mm5sa")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3.0893264, -1.9073486e-06, -17.405575)
|
||||
[node name="GroundedSpawner" parent="." index="14" unique_id=557145011 node_paths=PackedStringArray("Target") instance=ExtResource("8_1upfw")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 5, 2.5, -15)
|
||||
EnemyToSpawn = ExtResource("4_1cb4f")
|
||||
MovementInputs = ExtResource("9_ynw2y")
|
||||
HealthInputs = SubResource("Resource_epn1o")
|
||||
DamageInputs = ExtResource("10_jadgc")
|
||||
Target = NodePath("../Player")
|
||||
IsActiveOnStart = false
|
||||
|
||||
[node name="ProjectileEnemy2" parent="." index="15" unique_id=1908678308 node_paths=PackedStringArray("Target") instance=ExtResource("10_mm5sa")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.42922592, -3.8146973e-06, -20.257122)
|
||||
[node name="FlyingSpawner" parent="." index="15" unique_id=974076606 node_paths=PackedStringArray("Target") instance=ExtResource("8_1upfw")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 18, 11, -14)
|
||||
EnemyToSpawn = ExtResource("7_vkl5g")
|
||||
MovementInputs = ExtResource("11_luuoi")
|
||||
HealthInputs = ExtResource("12_4nug6")
|
||||
DamageInputs = ExtResource("13_e04qc")
|
||||
Target = NodePath("../Player")
|
||||
|
||||
[node name="ProjectileEnemy3" parent="." index="16" unique_id=1327447050 node_paths=PackedStringArray("Target") instance=ExtResource("10_mm5sa")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -6.4421315, -1.9073486e-06, -13.8114)
|
||||
Target = NodePath("../Player")
|
||||
|
||||
[node name="Player" parent="." index="18" unique_id=1309399929]
|
||||
transform = Transform3D(0.99999994, 0, 0, 0, 1, 0, 0, 0, 0.99999994, 2, 1.5, 9.5)
|
||||
IsActiveOnStart = false
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user