Persuader
This commit is contained in:
@@ -95,6 +95,8 @@ public partial class Player : CharacterBody3D, IPlayer, IProvide<IPlayer>
|
||||
[Node] private Projectile FireReactor { get; set; } = default!;
|
||||
[Node] private Projectile AirReactor { get; set; } = default!;
|
||||
[Node] private Projectile WaterReactor { get; set; } = default!;
|
||||
[Node] private Projectile PersuaderBullet { get; set; } = default!;
|
||||
[Node] private Sprite2D PersuaderCrosshair { get; set; } = default!;
|
||||
|
||||
#endregion
|
||||
|
||||
@@ -280,6 +282,9 @@ public partial class Player : CharacterBody3D, IPlayer, IProvide<IPlayer>
|
||||
VTComponent.RaiseMaximumVT(equipable.BonusVT, false);
|
||||
|
||||
EquipmentComponent.Equip(equipable);
|
||||
|
||||
if (equipable is Weapon weapon && weapon.WeaponTag == WeaponTag.KineticProjectile)
|
||||
PersuaderCrosshair.Show();
|
||||
}
|
||||
|
||||
public void Unequip(EquipableItem equipable)
|
||||
@@ -288,6 +293,9 @@ public partial class Player : CharacterBody3D, IPlayer, IProvide<IPlayer>
|
||||
VTComponent.SetMaximumVT(VTComponent.MaximumVT.Value - equipable.BonusVT);
|
||||
|
||||
EquipmentComponent.Unequip(equipable);
|
||||
|
||||
if (equipable is Weapon weapon && weapon.WeaponTag == WeaponTag.KineticProjectile)
|
||||
PersuaderCrosshair.Hide();
|
||||
}
|
||||
|
||||
private static Vector3 GlobalInputVector
|
||||
@@ -324,7 +332,7 @@ public partial class Player : CharacterBody3D, IPlayer, IProvide<IPlayer>
|
||||
private void Attack()
|
||||
{
|
||||
var weapon = EquipmentComponent.EquippedWeapon.Value as Weapon;
|
||||
if (weapon.WeaponTag == WeaponTag.ElementalProjectile)
|
||||
if (weapon.WeaponTag == WeaponTag.ElementalProjectile || weapon.WeaponTag == WeaponTag.KineticProjectile)
|
||||
{
|
||||
HandleProjectile(weapon);
|
||||
return;
|
||||
@@ -349,19 +357,24 @@ public partial class Player : CharacterBody3D, IPlayer, IProvide<IPlayer>
|
||||
if (ammo == null || ammo.Count <= 0)
|
||||
return;
|
||||
|
||||
if (weapon.WeaponTag != WeaponTag.ElementalProjectile)
|
||||
return;
|
||||
if (weapon.WeaponTag == WeaponTag.ElementalProjectile)
|
||||
{
|
||||
var fired = false;
|
||||
if (ammo.AmmoElement == ElementType.Igneous)
|
||||
fired = FireReactor.Fire();
|
||||
if (ammo.AmmoElement == ElementType.Aeolic)
|
||||
fired = AirReactor.Fire();
|
||||
if (ammo.AmmoElement == ElementType.Hydric)
|
||||
fired = WaterReactor.Fire();
|
||||
|
||||
var fired = false;
|
||||
if (ammo.AmmoElement == ElementType.Igneous)
|
||||
fired = FireReactor.Fire();
|
||||
if (ammo.AmmoElement == ElementType.Aeolic)
|
||||
fired = AirReactor.Fire();
|
||||
if (ammo.AmmoElement == ElementType.Hydric)
|
||||
fired = WaterReactor.Fire();
|
||||
|
||||
if (!fired)
|
||||
return;
|
||||
if (!fired)
|
||||
return;
|
||||
}
|
||||
else if (weapon.WeaponTag == WeaponTag.KineticProjectile)
|
||||
{
|
||||
var fired = false;
|
||||
fired = PersuaderBullet.Fire();
|
||||
}
|
||||
|
||||
ammo.SetCount(ammo.Count - 1);
|
||||
if (ammo.Count <= 0)
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
[gd_scene load_steps=1583 format=3 uid="uid://cfecvvav8kkp6"]
|
||||
[gd_scene load_steps=1585 format=3 uid="uid://cfecvvav8kkp6"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://yxmiqy7i0t7r" path="res://src/player/Player.cs" id="1_xcol5"]
|
||||
[ext_resource type="PackedScene" uid="uid://didc6vnf5ftlg" path="res://src/camera/ShakeCamera.tscn" id="2_jtmj1"]
|
||||
@@ -508,9 +508,11 @@
|
||||
[ext_resource type="Texture2D" uid="uid://bvqsilbdfyqd1" path="res://src/vfx/Items Etc/persiko/persiko125.png" id="399_b1hpb"]
|
||||
[ext_resource type="Texture2D" uid="uid://bwoccwmlevwm1" path="res://src/vfx/Items Etc/persiko/persiko126.png" id="400_nmop6"]
|
||||
[ext_resource type="Texture2D" uid="uid://dwfqyfjsj8nro" path="res://src/vfx/Items Etc/persiko/persiko127.png" id="401_28ame"]
|
||||
[ext_resource type="Texture2D" uid="uid://pv56eou8fuw6" path="res://src/vfx/Items Etc/crosshair.png" id="508_sq73w"]
|
||||
[ext_resource type="PackedScene" uid="uid://igpvnbi8qi6e" path="res://src/items/weapons/FireReactorProjectile.tscn" id="509_14f5p"]
|
||||
[ext_resource type="PackedScene" uid="uid://nnns2ade62al" path="res://src/items/weapons/AirReactorProjectile.tscn" id="510_k6pkx"]
|
||||
[ext_resource type="PackedScene" uid="uid://7p2sh52lj42o" path="res://src/items/weapons/WaterReactorProjectile.tscn" id="511_sq73w"]
|
||||
[ext_resource type="PackedScene" uid="uid://d3nx0suvhbcda" path="res://src/items/weapons/PersuaderProjectile.tscn" id="512_k6pkx"]
|
||||
|
||||
[sub_resource type="CapsuleShape3D" id="CapsuleShape3D_dw45s"]
|
||||
radius = 1.0
|
||||
@@ -10491,6 +10493,12 @@ sprite_frames = SubResource("SpriteFrames_krly2")
|
||||
frame = 63
|
||||
frame_progress = 1.0
|
||||
|
||||
[node name="PersuaderCrosshair" type="Sprite2D" parent="ScreenFX"]
|
||||
unique_name_in_owner = true
|
||||
visible = false
|
||||
position = Vector2(723, 575)
|
||||
texture = ExtResource("508_sq73w")
|
||||
|
||||
[node name="HitWallSound" type="AudioStreamPlayer" parent="."]
|
||||
unique_name_in_owner = true
|
||||
bus = &"SFX"
|
||||
@@ -10509,3 +10517,9 @@ unique_name_in_owner = true
|
||||
|
||||
[node name="WaterReactor" parent="Projectiles" instance=ExtResource("511_sq73w")]
|
||||
unique_name_in_owner = true
|
||||
|
||||
[node name="PersuaderBullet" parent="Projectiles" instance=ExtResource("512_k6pkx")]
|
||||
unique_name_in_owner = true
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -1.125)
|
||||
|
||||
[editable path="Projectiles/PersuaderBullet"]
|
||||
|
||||
Reference in New Issue
Block a user