Fix up enemy viewer, reduce some memory footprint

This commit is contained in:
2026-02-20 01:02:03 -08:00
parent fd1eb77f57
commit e77ca00002
1306 changed files with 7741 additions and 1487 deletions

View File

@@ -0,0 +1,47 @@
shader_type spatial;
render_mode diffuse_toon,specular_toon,cull_disabled;
uniform sampler2D iChannel0 : source_color;
uniform int samples =100;
//
//
uniform float alpha_cut ;
uniform float gain = 1.0; // gain : (gain), min = 0., max = 50.
//
uniform float blur_x =50.0; // X blur : (X blur), min = 0, max = 1000.
uniform float blur_y = 50.0; // Y blur : (Y blur), min = 0, max = 1000.
uniform float Rot_Angle : hint_range(0.0, 100.0, 0.1);
uniform float Metal : hint_range(0.0, 1.0, 0.1);
//
//
//
vec2 rotate(vec2 uv, vec2 p, float angle)
{
mat2 rotation = mat2(vec2(cos(angle), -sin(angle)),vec2(sin(angle), cos(angle)));
uv -= p;
uv = uv * rotation;
uv += p;
return uv;
}
void fragment(){
float Angle = Rot_Angle/-100.0;
vec2 uv = UV;
vec2 origin;
float precompute = Angle * (1.0 / float(samples - 1));
origin = vec2(0.5,0.5);
vec4 color = vec4(0.0);
float ws = 0.0;
vec2 center = vec2(0.5,0.5);
for(int i = 0; i <= samples; i++)
{
float p = (float(i)* precompute);
float w = 1.0 ;
color += texture(iChannel0, rotate(uv,origin, p)) * w;
ws += w;
}
ALBEDO = vec4(color.rgb / ws * gain, 1.0).rgb;
//ALPHA = vec4(color.rgb / ws * gain, 1.0).r;
ALPHA = step(alpha_cut,1.0 - distance(center,UV));
METALLIC = Metal;
}

View File

@@ -0,0 +1 @@
uid://o80s4yvp0rto

View File

@@ -0,0 +1 @@
uid://03k48fke03vu

View File

@@ -0,0 +1,162 @@
using Chickensoft.AutoInject;
using Chickensoft.Introspection;
using Godot;
using System;
using System.Collections.Generic;
using System.Linq;
using Zennysoft.Game.Abstractions;
namespace Zennysoft.Game.Ma;
[Meta(typeof(IAutoNode))]
public partial class EnemyViewer : Control, IEnemyViewer
{
public override void _Notification(int what) => this.Notify(what);
[Dependency]
public IAppRepo AppRepo => this.DependOn<IAppRepo>();
[Export]
public float _cameraSpeed = 0.01f;
[Export]
public float _distance = 50;
[Node] public Node3D CameraPivot { get; set; } = default!;
[Node] public Camera3D Camera3D { get; set; } = default!;
[Node] public Node3D ModelPivot { get; set; } = default!;
#region UI
[Node] public RichTextLabel EnemyName { get; set; } = default!;
[Node] public RichTextLabel Description { get; set; } = default!;
[Node] public Label HPValue { get; set; } = default!;
[Node] public Label ATKValue { get; set; } = default!;
[Node] public Label DEFValue { get; set; } = default!;
[Node] public Label Drop1Value { get; set; } = default!;
[Node] public Label Drop2Value { get; set; } = default!;
[Node] public Label AffinityValue { get; set; } = default!;
[Node] public Label WeaknessValue { get; set; } = default!;
[Node] public Control EnemyInfo { get; set; } = default!;
[Node] public Button BackButton { get; set; } = default!;
#endregion
private EnemyModelView _currentModel;
private float _cameraStartingPoint = 0f;
private int _currentIndex = 0;
private List<EnemyModelView> _enemies;
public void OnReady()
{
BackButton.Pressed += BackButton_Pressed;
_enemies = [.. ModelPivot.GetChildren().Cast<EnemyModelView>()];
_currentModel = _enemies.First();
DisplayEnemy();
}
public void OnEnterTree()
{
GetTree().Paused = false;
}
public void OnExitTree()
{
GetTree().Paused = false;
BackButton.Pressed -= BackButton_Pressed;
}
private void BackButton_Pressed() => AppRepo.OnDataViewerExited();
public override void _Input(InputEvent @event)
{
if (BackButton.HasFocus() && @event.IsActionPressed(GameInputs.Interact))
{
GetTree().Paused = false;
BackButton.ReleaseFocus();
return;
}
if (_currentModel == null || BackButton.HasFocus())
return;
if (@event.IsActionPressed(GameInputs.Attack))
_currentModel.PlayPrimaryAttackAnimation();
if (@event.IsActionPressed(GameInputs.InventorySort))
_currentModel.PlaySecondaryAttackAnimation();
if (Input.IsActionJustPressed(GameInputs.Inventory))
_currentModel.PlayActivateAnimation();
if (@event.IsActionPressed(GameInputs.EnemyViewerWalk))
_currentModel.PlayWalkAnimation();
if (@event.IsActionReleased(GameInputs.EnemyViewerWalk))
_currentModel.PlayIdleAnimation();
if (@event.IsActionPressed(GameInputs.Interact))
{
GetTree().Paused = true;
BackButton.GrabFocus();
}
if (@event.IsActionPressed(GameInputs.StrafeRight))
{
// Load next model
_enemies[_currentIndex].Hide();
if (_currentIndex == _enemies.Count - 1)
_currentIndex = 0;
else
_currentIndex++;
DisplayEnemy();
}
if (@event.IsActionPressed(GameInputs.StrafeLeft))
{
_enemies[_currentIndex].Hide();
// Load previous model
if (_currentIndex == 0)
_currentIndex = _enemies.Count - 1;
else
_currentIndex--;
DisplayEnemy();
}
}
public override void _Process(double delta)
{
var forwardStrength = Input.GetActionStrength(GameInputs.MoveUp);
Camera3D.Position = Camera3D.Position.MoveToward(CameraPivot.Position, _cameraSpeed * forwardStrength * (_cameraStartingPoint / 3));
var backStrength = Input.GetActionStrength(GameInputs.MoveDown);
Camera3D.Position = Camera3D.Position.MoveToward(CameraPivot.Position, -_cameraSpeed * backStrength * (_cameraStartingPoint / 3));
var leftStrength = Input.GetActionStrength(GameInputs.MoveLeft);
CameraPivot.RotateY(_cameraSpeed * leftStrength);
var rightStrength = Input.GetActionStrength(GameInputs.MoveRight);
CameraPivot.RotateY(-_cameraSpeed * rightStrength);
Camera3D.Position = Camera3D.Position.Clamp(new Vector3(0, 1, _cameraStartingPoint / 2), new Vector3(0, 1, _cameraStartingPoint));
ModelPivot.Rotation = ModelPivot.Rotation.Clamp(Mathf.DegToRad(-60), Mathf.DegToRad(60));
if (_currentModel is EnemyModelView2D enemyModelView2D)
enemyModelView2D.SetCurrentDirection(_currentModel.GlobalBasis, -CameraPivot.Basis.Z);
}
private void DisplayEnemy()
{
_currentModel = _enemies[_currentIndex];
_cameraStartingPoint = (float)_currentModel.ViewerSize;
Camera3D.Position = new Vector3(Camera3D.Position.X, Camera3D.Position.Y, _cameraStartingPoint);
EnemyName.Text = _currentModel.EnemyLoreInfo != null ? _currentModel.EnemyLoreInfo.Name : "Placeholder Text";
Description.Text = _currentModel.EnemyLoreInfo != null ? _currentModel.EnemyLoreInfo.Description : "Placeholder Text";
HPValue.Text = _currentModel.EnemyLoreInfo != null ? _currentModel.EnemyLoreInfo.MaximumHP : "Placeholder Text";
ATKValue.Text = _currentModel.EnemyLoreInfo != null ? _currentModel.EnemyLoreInfo.ATK : "Placeholder Text";
DEFValue.Text = _currentModel.EnemyLoreInfo != null ? _currentModel.EnemyLoreInfo.DEF : "Placeholder Text";
Drop1Value.Text = _currentModel.EnemyLoreInfo != null ? _currentModel.EnemyLoreInfo.Drop1 : "Placeholder Text";
Drop2Value.Text = _currentModel.EnemyLoreInfo != null ? _currentModel.EnemyLoreInfo.Drop2 : "Placeholder Text";
AffinityValue.Text = _currentModel.EnemyLoreInfo != null ? _currentModel.EnemyLoreInfo.Affinity : "Placeholder Text";
WeaknessValue.Text = _currentModel.EnemyLoreInfo != null ? _currentModel.EnemyLoreInfo.Weakness : "Placeholder Text";
_enemies[_currentIndex].Show();
}
}

View File

@@ -0,0 +1 @@
uid://bgaflnnur26vk

View File

@@ -0,0 +1,380 @@
[gd_scene load_steps=29 format=3 uid="uid://b02ykp0nm7cyw"]
[ext_resource type="Script" uid="uid://bgaflnnur26vk" path="res://src/enemy_viewer/EnemyViewer.cs" id="1_1qako"]
[ext_resource type="Texture2D" uid="uid://dsf5l6g8n1tkw" path="res://src/ui/rendered_assets/SCREEN_RENDERS_Viewer_720_16_9.png" id="2_hpkd1"]
[ext_resource type="Texture2D" uid="uid://bophm5or5opdf" path="res://src/enemy_viewer/bafkreicavupacvvhtig6ii2zb3svww7luvmuknyttza6s4doxm4oursnzm.jpg" id="3_hpkd1"]
[ext_resource type="PackedScene" uid="uid://bjcqrhtifpcvr" path="res://src/enemy/enemy_types/01. sproingy/SproingyModelView.tscn" id="3_vk1lh"]
[ext_resource type="Shader" uid="uid://o80s4yvp0rto" path="res://src/enemy_viewer/BlurSprite3D.gdshader" id="4_vk1lh"]
[ext_resource type="PackedScene" uid="uid://b6sa6ntu4rbrm" path="res://src/enemy/enemy_types/03. filth_eater/FilthEaterModelView.tscn" id="5_w2r6i"]
[ext_resource type="PackedScene" uid="uid://g84hcmgo3gtl" path="res://src/enemy/enemy_types/04. sara/SaraModelView.tscn" id="6_rdiwx"]
[ext_resource type="LabelSettings" uid="uid://b6f8ggy3ulonb" path="res://src/ui/label_settings/GeorgiaItalic.tres" id="6_vk1lh"]
[ext_resource type="FontFile" uid="uid://beh6d5lo5ihq0" path="res://src/ui/fonts/georgiai.ttf" id="7_dvixg"]
[ext_resource type="PackedScene" uid="uid://dppmk4nx2le20" path="res://src/enemy/enemy_types/05. ballos/BallosModelView.tscn" id="7_w2r6i"]
[ext_resource type="PackedScene" uid="uid://uqle8gaeajg6" path="res://src/enemy/enemy_types/02. michael/MichaelModelView.tscn" id="8_ekqja"]
[ext_resource type="PackedScene" uid="uid://de6e8yv6mv4fe" path="res://src/enemy/enemy_types/07. chinthe/ChintheModelView.tscn" id="9_rdiwx"]
[ext_resource type="PackedScene" uid="uid://7eo16vsbrgi3" path="res://src/enemy/enemy_types/08a. Ambassador/AmbassadorModelView.tscn" id="10_rdiwx"]
[ext_resource type="PackedScene" uid="uid://d02te8cwjistl" path="res://src/enemy/enemy_types/08b. Ambassador (red)/AmbassadorSmallModelView.tscn" id="11_elpsj"]
[ext_resource type="PackedScene" uid="uid://g8km112r1lqa" path="res://src/enemy/enemy_types/08c. Ambassador (steel)/AmbassadorSteelModelView.tscn" id="12_3kprl"]
[ext_resource type="PackedScene" uid="uid://uynf2cg7wtqo" path="res://src/enemy/enemy_types/09. Agni/AgniDemonModelView.tscn" id="12_dr0jx"]
[ext_resource type="PackedScene" uid="uid://omkas04o46rq" path="res://src/enemy/enemy_types/9b. Aqueos Demon/AqueosModelView.tscn" id="13_dr0jx"]
[ext_resource type="PackedScene" uid="uid://cuar5bbhxie4r" path="res://src/enemy/enemy_types/11. Palan/PalanModelView.tscn" id="15_7bm5s"]
[ext_resource type="PackedScene" uid="uid://bochx2nfql67q" path="res://src/enemy/enemy_types/12. Shield of Heaven/ShieldModelView.tscn" id="16_7bm5s"]
[ext_resource type="PackedScene" uid="uid://dw7fyurv4vkd5" path="res://src/enemy/enemy_types/13. gold sproingy/GoldSproingyModelView.tscn" id="17_c1y0w"]
[ext_resource type="PackedScene" uid="uid://dykkkt8mr1012" path="res://src/enemy/enemy_types/10. Eden Pillar/EdenPillarModelView.tscn" id="18_r2vgt"]
[ext_resource type="PackedScene" uid="uid://c00olwjise7iv" path="res://src/enemy/enemy_types/14. horse_head/HorseFaceModelView.tscn" id="18_tnrj6"]
[ext_resource type="PackedScene" uid="uid://bbvw38l6407s2" path="res://src/enemy/enemy_types/15. ox_face/OxFaceModelView.tscn" id="19_elms1"]
[ext_resource type="PackedScene" uid="uid://b3oupv6tkt4ad" path="res://src/enemy/enemy_types/16. demon wall/DemonWallModelView.tscn" id="20_elms1"]
[ext_resource type="StyleBox" uid="uid://bxuy4tnftibfq" path="res://src/options/SelectedOptionsBox.tres" id="25_gdy4a"]
[ext_resource type="StyleBox" uid="uid://bl15q835s4ene" path="res://src/options/UnselectedOptionsBox.tres" id="26_br3ej"]
[ext_resource type="Script" uid="uid://bc6iu0oq18y2l" path="res://src/player/DummyPlayer.cs" id="27_v1qxp"]
[sub_resource type="ShaderMaterial" id="ShaderMaterial_dvixg"]
render_priority = 0
shader = ExtResource("4_vk1lh")
shader_parameter/iChannel0 = ExtResource("3_hpkd1")
shader_parameter/samples = 100
shader_parameter/alpha_cut = 0.0
shader_parameter/gain = 17.73
shader_parameter/blur_x = 50.0
shader_parameter/blur_y = 50.0
shader_parameter/Rot_Angle = 4.9
shader_parameter/Metal = 0.0
[node name="DataViewer" type="Control"]
layout_mode = 3
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
size_flags_horizontal = 3
size_flags_vertical = 3
script = ExtResource("1_1qako")
_cameraSpeed = 0.08
_distance = 200.0
[node name="TextureRect" type="TextureRect" parent="."]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
texture = ExtResource("2_hpkd1")
[node name="CenterContainer2" type="CenterContainer" parent="."]
layout_mode = 0
offset_left = 69.0
offset_top = 196.0
offset_right = 900.0
offset_bottom = 942.0
[node name="SubViewportContainer" type="SubViewportContainer" parent="CenterContainer2"]
custom_minimum_size = Vector2(750, 600)
layout_mode = 2
stretch = true
[node name="SubViewport" type="SubViewport" parent="CenterContainer2/SubViewportContainer"]
process_mode = 1
handle_input_locally = false
size = Vector2i(750, 600)
render_target_update_mode = 4
[node name="ModelPivot" type="Node3D" parent="CenterContainer2/SubViewportContainer/SubViewport"]
unique_name_in_owner = true
[node name="Sproingy" parent="CenterContainer2/SubViewportContainer/SubViewport/ModelPivot" instance=ExtResource("3_vk1lh")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -1.00286, 0)
visible = false
ViewerSize = 1.5
[node name="Michael" parent="CenterContainer2/SubViewportContainer/SubViewport/ModelPivot" instance=ExtResource("8_ekqja")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -1.00286, 0)
visible = false
ViewerSize = 2.0
[node name="FilthEater" parent="CenterContainer2/SubViewportContainer/SubViewport/ModelPivot" instance=ExtResource("5_w2r6i")]
visible = false
ViewerSize = 3.5
[node name="Apsara" parent="CenterContainer2/SubViewportContainer/SubViewport/ModelPivot" instance=ExtResource("6_rdiwx")]
visible = false
ViewerSize = 3.0
[node name="Ballos" parent="CenterContainer2/SubViewportContainer/SubViewport/ModelPivot" instance=ExtResource("7_w2r6i")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.796934, 0)
visible = false
ViewerSize = 4.0
[node name="Chinthe" parent="CenterContainer2/SubViewportContainer/SubViewport/ModelPivot" instance=ExtResource("9_rdiwx")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.41574, 0)
visible = false
ViewerSize = 3.5
[node name="AmbassadorGreen" parent="CenterContainer2/SubViewportContainer/SubViewport/ModelPivot" instance=ExtResource("10_rdiwx")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.509494, 0)
visible = false
ViewerSize = 3.5
[node name="AmbassadorRed" parent="CenterContainer2/SubViewportContainer/SubViewport/ModelPivot" instance=ExtResource("11_elpsj")]
visible = false
ViewerSize = 2.5
[node name="AmbassadorSteel" parent="CenterContainer2/SubViewportContainer/SubViewport/ModelPivot" instance=ExtResource("12_3kprl")]
visible = false
ViewerSize = 3.0
[node name="AgniDemon" parent="CenterContainer2/SubViewportContainer/SubViewport/ModelPivot" instance=ExtResource("12_dr0jx")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.5, 0)
visible = false
ViewerSize = 4.0
[node name="AqueosDemon" parent="CenterContainer2/SubViewportContainer/SubViewport/ModelPivot" instance=ExtResource("13_dr0jx")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.3, 0)
visible = false
ViewerSize = 4.0
[node name="Palan" parent="CenterContainer2/SubViewportContainer/SubViewport/ModelPivot" instance=ExtResource("15_7bm5s")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.492472, 0)
visible = false
ViewerSize = 4.0
[node name="ShieldOfHeaven" parent="CenterContainer2/SubViewportContainer/SubViewport/ModelPivot" instance=ExtResource("16_7bm5s")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.676215, 0)
visible = false
ViewerSize = 4.0
[node name="GoldSproingy" parent="CenterContainer2/SubViewportContainer/SubViewport/ModelPivot" instance=ExtResource("17_c1y0w")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.996254, 0)
visible = false
ViewerSize = 3.0
[node name="EdenPillarModelView" parent="CenterContainer2/SubViewportContainer/SubViewport/ModelPivot" instance=ExtResource("18_r2vgt")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -5.14047, 0)
visible = false
ViewerSize = 17.0
[node name="HorseHead" parent="CenterContainer2/SubViewportContainer/SubViewport/ModelPivot" instance=ExtResource("18_tnrj6")]
transform = Transform3D(0.15, 0, 0, 0, 0.15, 0, 0, 0, 0.15, 0, -1.10523, 0)
visible = false
ViewerSize = 8.0
[node name="OxFace" parent="CenterContainer2/SubViewportContainer/SubViewport/ModelPivot" instance=ExtResource("19_elms1")]
transform = Transform3D(0.15, 0, 0, 0, 0.15, 0, 0, 0, 0.15, 0, -1.105, 0)
visible = false
ViewerSize = 8.0
[node name="DemonWall" parent="CenterContainer2/SubViewportContainer/SubViewport/ModelPivot" instance=ExtResource("20_elms1")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -2.99034, 0)
visible = false
ViewerSize = 35.0
[node name="CameraPivot" type="Node3D" parent="CenterContainer2/SubViewportContainer/SubViewport"]
unique_name_in_owner = true
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.010191, 0)
[node name="Camera3D" type="Camera3D" parent="CenterContainer2/SubViewportContainer/SubViewport/CameraPivot"]
unique_name_in_owner = true
transform = Transform3D(1, 0, 0, 0, 0.999848, -0.0174524, 0, 0.0174524, 0.999848, 0.003, 1.05, 3)
cull_mask = 1048569
doppler_tracking = 1
current = true
fov = 52.9
near = 0.01
far = 9000.0
[node name="Sprite3D" type="Sprite3D" parent="CenterContainer2/SubViewportContainer/SubViewport/CameraPivot/Camera3D"]
transform = Transform3D(-1, 0, 8.74228e-08, -1.52574e-09, 0.999848, -0.0174524, -8.74095e-08, -0.0174524, -0.999848, 349.341, -209.25, -288.223)
material_override = SubResource("ShaderMaterial_dvixg")
pixel_size = 1.0
billboard = 2
transparent = false
texture_filter = 2
texture = ExtResource("3_hpkd1")
[node name="OmniLight3D" type="OmniLight3D" parent="CenterContainer2/SubViewportContainer/SubViewport"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 6.99017, 9.40485)
omni_range = 55.7097
[node name="MarginContainer" type="MarginContainer" parent="."]
layout_mode = 2
anchor_left = 0.5
anchor_top = 0.186
anchor_right = 0.969
anchor_bottom = 0.87
offset_left = 13.0
offset_top = 4.12
offset_right = 5.5199
offset_bottom = 3.3999
theme_override_constants/margin_left = 25
theme_override_constants/margin_top = 25
theme_override_constants/margin_right = 25
[node name="EnemyInfo" type="VBoxContainer" parent="MarginContainer"]
unique_name_in_owner = true
layout_mode = 2
theme_override_constants/separation = 20
[node name="EnemyName" type="RichTextLabel" parent="MarginContainer/EnemyInfo"]
unique_name_in_owner = true
custom_minimum_size = Vector2(800, 50)
layout_mode = 2
theme_override_fonts/normal_font = ExtResource("7_dvixg")
theme_override_font_sizes/normal_font_size = 40
text = "Placeholder Text"
[node name="HBoxContainer" type="HBoxContainer" parent="MarginContainer/EnemyInfo"]
custom_minimum_size = Vector2(0, 150)
layout_mode = 2
[node name="StatBlock" type="VBoxContainer" parent="MarginContainer/EnemyInfo/HBoxContainer"]
custom_minimum_size = Vector2(300, 0)
layout_mode = 2
[node name="HPBlock" type="HBoxContainer" parent="MarginContainer/EnemyInfo/HBoxContainer/StatBlock"]
layout_mode = 2
[node name="Label" type="Label" parent="MarginContainer/EnemyInfo/HBoxContainer/StatBlock/HPBlock"]
layout_mode = 2
text = "HP"
label_settings = ExtResource("6_vk1lh")
[node name="HPValue" type="Label" parent="MarginContainer/EnemyInfo/HBoxContainer/StatBlock/HPBlock"]
unique_name_in_owner = true
layout_mode = 2
size_flags_horizontal = 3
text = "992"
label_settings = ExtResource("6_vk1lh")
[node name="ATKBlock" type="HBoxContainer" parent="MarginContainer/EnemyInfo/HBoxContainer/StatBlock"]
layout_mode = 2
[node name="Label" type="Label" parent="MarginContainer/EnemyInfo/HBoxContainer/StatBlock/ATKBlock"]
layout_mode = 2
text = "ATK"
label_settings = ExtResource("6_vk1lh")
[node name="ATKValue" type="Label" parent="MarginContainer/EnemyInfo/HBoxContainer/StatBlock/ATKBlock"]
unique_name_in_owner = true
layout_mode = 2
size_flags_horizontal = 3
text = "14"
label_settings = ExtResource("6_vk1lh")
[node name="DEFBlock" type="HBoxContainer" parent="MarginContainer/EnemyInfo/HBoxContainer/StatBlock"]
layout_mode = 2
[node name="Label" type="Label" parent="MarginContainer/EnemyInfo/HBoxContainer/StatBlock/DEFBlock"]
layout_mode = 2
text = "DEF"
label_settings = ExtResource("6_vk1lh")
[node name="DEFValue" type="Label" parent="MarginContainer/EnemyInfo/HBoxContainer/StatBlock/DEFBlock"]
unique_name_in_owner = true
layout_mode = 2
size_flags_horizontal = 3
text = "15"
label_settings = ExtResource("6_vk1lh")
[node name="DropsBlock" type="VBoxContainer" parent="MarginContainer/EnemyInfo/HBoxContainer"]
custom_minimum_size = Vector2(300, 0)
layout_mode = 2
[node name="Drops" type="Label" parent="MarginContainer/EnemyInfo/HBoxContainer/DropsBlock"]
layout_mode = 2
text = "Drops:"
label_settings = ExtResource("6_vk1lh")
[node name="FirstDrop" type="HBoxContainer" parent="MarginContainer/EnemyInfo/HBoxContainer/DropsBlock"]
layout_mode = 2
[node name="Label" type="Label" parent="MarginContainer/EnemyInfo/HBoxContainer/DropsBlock/FirstDrop"]
layout_mode = 2
text = "1."
label_settings = ExtResource("6_vk1lh")
[node name="Drop1Value" type="Label" parent="MarginContainer/EnemyInfo/HBoxContainer/DropsBlock/FirstDrop"]
unique_name_in_owner = true
layout_mode = 2
size_flags_horizontal = 3
text = "???"
label_settings = ExtResource("6_vk1lh")
[node name="SecondDrop" type="HBoxContainer" parent="MarginContainer/EnemyInfo/HBoxContainer/DropsBlock"]
layout_mode = 2
[node name="Label" type="Label" parent="MarginContainer/EnemyInfo/HBoxContainer/DropsBlock/SecondDrop"]
layout_mode = 2
text = "2."
label_settings = ExtResource("6_vk1lh")
[node name="Drop2Value" type="Label" parent="MarginContainer/EnemyInfo/HBoxContainer/DropsBlock/SecondDrop"]
unique_name_in_owner = true
layout_mode = 2
size_flags_horizontal = 3
text = "Goddess Garb"
label_settings = ExtResource("6_vk1lh")
[node name="AffinityBlock" type="VBoxContainer" parent="MarginContainer/EnemyInfo"]
custom_minimum_size = Vector2(300, 0)
layout_mode = 2
[node name="Affinity" type="HBoxContainer" parent="MarginContainer/EnemyInfo/AffinityBlock"]
layout_mode = 2
[node name="Label" type="Label" parent="MarginContainer/EnemyInfo/AffinityBlock/Affinity"]
layout_mode = 2
text = "Affinity:"
label_settings = ExtResource("6_vk1lh")
[node name="AffinityValue" type="Label" parent="MarginContainer/EnemyInfo/AffinityBlock/Affinity"]
unique_name_in_owner = true
layout_mode = 2
size_flags_horizontal = 3
text = "Metal"
label_settings = ExtResource("6_vk1lh")
[node name="Weakness" type="HBoxContainer" parent="MarginContainer/EnemyInfo/AffinityBlock"]
layout_mode = 2
[node name="Label" type="Label" parent="MarginContainer/EnemyInfo/AffinityBlock/Weakness"]
layout_mode = 2
text = "Weakness:"
label_settings = ExtResource("6_vk1lh")
[node name="WeaknessValue" type="Label" parent="MarginContainer/EnemyInfo/AffinityBlock/Weakness"]
unique_name_in_owner = true
layout_mode = 2
size_flags_horizontal = 3
text = "Holy"
label_settings = ExtResource("6_vk1lh")
[node name="Description" type="RichTextLabel" parent="MarginContainer/EnemyInfo"]
unique_name_in_owner = true
custom_minimum_size = Vector2(800, 625)
layout_mode = 2
theme_override_fonts/normal_font = ExtResource("7_dvixg")
theme_override_font_sizes/normal_font_size = 30
text = "Placeholder Text"
[node name="BackButton" type="Button" parent="."]
unique_name_in_owner = true
layout_mode = 0
offset_left = 1671.0
offset_top = 972.0
offset_right = 1803.0
offset_bottom = 1028.0
theme_override_styles/focus = ExtResource("25_gdy4a")
theme_override_styles/disabled_mirrored = ExtResource("26_br3ej")
theme_override_styles/disabled = ExtResource("26_br3ej")
theme_override_styles/hover_pressed_mirrored = ExtResource("26_br3ej")
theme_override_styles/hover_pressed = ExtResource("26_br3ej")
theme_override_styles/hover_mirrored = ExtResource("26_br3ej")
theme_override_styles/hover = ExtResource("26_br3ej")
theme_override_styles/pressed_mirrored = ExtResource("26_br3ej")
theme_override_styles/pressed = ExtResource("26_br3ej")
theme_override_styles/normal_mirrored = ExtResource("26_br3ej")
theme_override_styles/normal = ExtResource("26_br3ej")
[node name="DummyPlayer" type="CharacterBody3D" parent="."]
script = ExtResource("27_v1qxp")

View File

@@ -0,0 +1,6 @@
namespace Zennysoft.Game.Ma;
public interface IEnemyViewer
{
}

View File

@@ -0,0 +1 @@
uid://b38a6d1l2jpmg

Binary file not shown.

After

Width:  |  Height:  |  Size: 191 KiB

View File

@@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://bophm5or5opdf"
path="res://.godot/imported/bafkreicavupacvvhtig6ii2zb3svww7luvmuknyttza6s4doxm4oursnzm.jpg-f88d8853613b3452be42477990890b3a.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://src/enemy_viewer/bafkreicavupacvvhtig6ii2zb3svww7luvmuknyttza6s4doxm4oursnzm.jpg"
dest_files=["res://.godot/imported/bafkreicavupacvvhtig6ii2zb3svww7luvmuknyttza6s4doxm4oursnzm.jpg-f88d8853613b3452be42477990890b3a.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
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