something is no yes

This commit is contained in:
2025-08-31 20:47:08 +02:00
parent fb1c3f8290
commit 224d55aec6
44 changed files with 11265 additions and 128 deletions

View File

@@ -1,9 +1,11 @@
using System;
using System.Runtime.CompilerServices;
using RebootKit.Engine.Extensions;
using RebootKit.Engine.Main;
using RebootKit.Engine.Network;
using RebootKit.Engine.Simulation;
using RebootReality.jelycho.Player;
using TriInspector;
using Unity.Mathematics;
using UnityEngine;
using UnityEngine.AI;
@@ -23,6 +25,41 @@ namespace RebootReality.jelycho.Enemies {
}
}
public enum ZombieBodyPartType {
Body,
Head,
LeftArm,
RightArm,
LeftLeg,
RightLeg
}
// @TODO: weird naming
[Serializable]
public class ZombieBodyPart {
public Transform root;
public Transform[] wearables;
public Collider[] colliders;
public ParticleSystem bloodStreamParticles;
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public bool IsAlive() {
return root.gameObject.activeSelf;
}
public void HideParts() {
root.gameObject.SetActive(false);
foreach (Transform wearable in wearables) {
wearable.gameObject.SetActive(false);
}
foreach (Collider collider in colliders) {
collider.enabled = false;
}
}
}
[DeclareBoxGroup("Body parts")]
public class ZombieActor : Actor, IKillable {
static readonly Logger s_Logger = new Logger(nameof(ZombieActor));
@@ -41,14 +78,19 @@ namespace RebootReality.jelycho.Enemies {
[SerializeField] NavMeshAgent m_NavAgent;
[SerializeField] Collider[] m_RagdollColliders;
[SerializeField] Collider m_RootCollider;
[SerializeField] Rigidbody[] m_RagdollRigidbodies;
[SerializeField] Collider[] m_Hitboxes;
[SerializeField] float m_MaxAttackDistance = 1.0f;
[SerializeField] float m_LoseInterestMinDistance = 10.0f;
[SerializeField] ulong m_BaseDamage = 10;
[SerializeField] float m_AttackDelay = 1.0f;
[SerializeField, Group("Body parts")] ZombieBodyPart m_Head;
[SerializeField, Group("Body parts")] ZombieBodyPart m_LeftArm;
[SerializeField, Group("Body parts")] ZombieBodyPart m_RightArm;
[SerializeField, Group("Body parts")] ZombieBodyPart m_LeftLeg;
[SerializeField, Group("Body parts")] ZombieBodyPart m_RightLeg;
AIState m_State = AIState.Idle;
@@ -144,7 +186,7 @@ namespace RebootReality.jelycho.Enemies {
SetIdleState();
return;
}
if (distToPlayerSq <= m_MaxAttackDistance * m_MaxAttackDistance) {
m_NextAttackTimer -= dt;
if (m_NextAttackTimer <= 0.0f) {
@@ -181,6 +223,7 @@ namespace RebootReality.jelycho.Enemies {
void Die() {
s_Logger.Info("Die");
EnableRagdoll();
m_NavAgent.enabled = false;
m_State = AIState.Dead;
died.Invoke();
@@ -235,19 +278,13 @@ namespace RebootReality.jelycho.Enemies {
}
void SetRagdollLocal(bool active) {
foreach (Collider ragdollCollider in m_RagdollColliders) {
ragdollCollider.enabled = active;
}
m_RootCollider.enabled = !active;
foreach (Rigidbody ragdollRigidbody in m_RagdollRigidbodies) {
ragdollRigidbody.isKinematic = !active;
}
m_Animator.enabled = !active;
foreach (Collider hitbox in m_Hitboxes) {
hitbox.enabled = !active;
}
}
//
@@ -280,6 +317,70 @@ namespace RebootReality.jelycho.Enemies {
return damage;
}
//
// @MARK: damage?
//
public void HitFeedback(float3 hitPosition) {
if (RR.World.Context is WorldContext worldContext) {
worldContext.FeedbacksManager.SpawnBloodSplash(hitPosition);
}
}
public void ReceiveDamage(ulong damage, ZombieBodyPartType bodyPartType) {
if (!IsAlive()) {
return;
}
ZombieBodyPart bodyPart = GetBodyParty(bodyPartType);
if (!bodyPart.IsAlive()) {
return;
}
bodyPart.HideParts();
bodyPart.bloodStreamParticles.Play();
Die();
}
public bool HasBodyPart(ZombieBodyPartType bodyPart) {
if (Health <= 0) {
return false;
}
if (bodyPart == ZombieBodyPartType.Body) {
return true;
}
ZombieBodyPart part = GetBodyParty(bodyPart);
if (part == null) {
return false;
}
return part.IsAlive();
}
ZombieBodyPart GetBodyParty(ZombieBodyPartType bodyPart) {
return bodyPart switch {
ZombieBodyPartType.Body => null,
ZombieBodyPartType.Head => m_Head,
ZombieBodyPartType.LeftArm => m_LeftArm,
ZombieBodyPartType.RightArm => m_RightArm,
ZombieBodyPartType.LeftLeg => m_LeftLeg,
ZombieBodyPartType.RightLeg => m_RightLeg,
_ => throw new ArgumentOutOfRangeException(nameof(bodyPart), bodyPart, null)
};
}
///
/// @MARK: Utility
///
[Button]
void SetupHurtboxes() {
foreach (ZombieHurtbox hurtbox in GetComponentsInChildren<ZombieHurtbox>()) {
hurtbox.owner = this;
}
}
}
enum ZombieActorEvents {

View File

@@ -0,0 +1,28 @@
using RebootKit.Engine.Main;
using RebootKit.Engine.Simulation;
using Unity.Mathematics;
using UnityEngine;
using UnityEngine.Assertions;
namespace RebootReality.jelycho.Enemies {
public class ZombieHurtbox : MonoBehaviour, IHurtbox {
public ZombieActor owner;
[SerializeField] ZombieBodyPartType m_BodyPart = ZombieBodyPartType.Body;
void Awake() {
Assert.IsNotNull(owner);
}
public void ReceiveDamage(Actor attacker, ulong damage, float3 worldHitPos) {
if (!owner.HasBodyPart(m_BodyPart)) {
return;
}
owner.ReceiveDamage(damage, m_BodyPart);
if (RR.World.Context is WorldContext worldContext) {
worldContext.FeedbacksManager.SpawnBloodSplash(worldHitPos);
}
}
}
}

View File

@@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 37d2b8f1679f41288194769e98584e0e
timeCreated: 1756341610

View File

@@ -24,8 +24,10 @@ namespace RebootReality.jelycho.Feedbacks {
public class FeedbacksManagerActor : Actor {
static readonly Logger s_Logger = new Logger(nameof(FeedbacksManagerActor));
[SerializeField] Volume m_Volume;
[SerializeField] ParticleSystem m_BloodSplashParticles;
[SerializeField] Volume m_Volume;
[SerializeField] float m_QuickAttackIndicatorDuration = 0.3f;
[SerializeField] float m_QuickAttackIndicatorPaniniAppearSpeed = 2.0f;
[SerializeField] float m_QuickAttackIndicatorChromaticAppearSpeed = 2.0f;
@@ -115,6 +117,14 @@ namespace RebootReality.jelycho.Feedbacks {
m_IsChargeReady = false;
}
public void SpawnBloodSplash(float3 worldPosition) {
ParticleSystem.EmitParams emitParams = new ParticleSystem.EmitParams {
position = worldPosition
};
m_BloodSplashParticles.Emit(emitParams, 128);
}
//
// @MARK: Actor
//

View File

@@ -0,0 +1,86 @@
using System;
using Oddworm.Framework;
using RebootKit.Engine.Foundation;
using RebootKit.Engine.Main;
using RebootKit.Engine.Simulation;
using Unity.Mathematics;
using UnityEngine;
using Logger = RebootKit.Engine.Foundation.Logger;
namespace RebootReality.jelycho {
public class HitboxManagerActor : Actor {
static readonly Logger s_Logger = new Logger(nameof(HitboxManagerActor));
static readonly Collider[] s_CollidersBuffer = new Collider[512];
[ConfigVar("debug.hitbox", 0, "Shows hitboxes")]
static ConfigVar s_ShowHitboxesDebug;
static bool ShouldShowHitboxes() {
return s_ShowHitboxesDebug.IndexValue > 0;
}
[SerializeField] Color m_HitboxDebugColor = Color.red;
[SerializeField] float m_HitboxDebugDuration = 3.0f;
[SerializeField] LayerMask m_HurtboxesLayerMask;
//
// @MARK: HitboxManager
//
public void HitSphere(float3 origin, float radius, Actor attacker, ulong damage) {
if (RR.IsServer()) {
HitSphereLocal(origin, radius, attacker, damage);
} else {
throw new NotImplementedException("Hitting on client not implemented yet!");
}
}
void HitSphereLocal(float3 origin, float radius, Actor attacker, ulong damage) {
if (ShouldShowHitboxes()) {
DbgDraw.Sphere(origin,
Quaternion.identity,
Vector3.one * radius,
m_HitboxDebugColor,
m_HitboxDebugDuration);
}
int count = Physics.OverlapSphereNonAlloc(origin, radius, s_CollidersBuffer, m_HurtboxesLayerMask);
for (int i = 0; i < count; ++i) {
if (s_CollidersBuffer[i].TryGetComponent(out IHurtbox hurtbox)) {
float3 p = s_CollidersBuffer[i].ClosestPoint(origin);
if (ShouldShowHitboxes()) {
DbgDraw.Sphere(p, Quaternion.identity, Vector3.one * 0.1f, Color.magenta, m_HitboxDebugDuration);
}
hurtbox.ReceiveDamage(attacker, damage, p);
}
// if (s_CollidersBuffer[i].TryGetComponent(out IKillable killable)) {
// Actor killableActor = killable as Actor;
// if (killableActor == attacker) {
// continue;
// }
//
// if (killable is IHasHitFeedback hitFeedback) {
// float3 p = s_CollidersBuffer[i].ClosestPoint(origin);
// if (ShouldShowHitboxes()) {
// DbgDraw.Sphere(p, Quaternion.identity, Vector3.one * 0.1f, Color.magenta, m_HitboxDebugDuration);
// }
//
// hitFeedback.HitFeedback(p);
// }
//
// // @TODO: send command to server to hit an killable
// killable.OnHit(attacker, damage);
// }
}
}
//
// @MARK: Actor
//
protected override IActorData CreateActorData() {
return new NoActorData();
}
}
}

View File

@@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: f3973c6291404892a6d48dcb056b6de5
timeCreated: 1755826207

View File

@@ -0,0 +1,8 @@
using RebootKit.Engine.Simulation;
using Unity.Mathematics;
namespace RebootReality.jelycho {
public interface IHurtbox {
void ReceiveDamage(Actor attacker, ulong damage, float3 worldHitPos);
}
}

View File

@@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 82f5148be9a14cd4a59245f69d6f4079
timeCreated: 1756341517

View File

@@ -9,8 +9,6 @@ namespace RebootReality.jelycho.Items {
static readonly Logger s_Logger = new Logger(nameof(ItemActor));
class ItemActorData : IActorData {
public ItemConfig Config;
public void Serialize(NetworkBufferWriter writer) { }
public void Deserialize(NetworkBufferReader reader) { }
@@ -33,9 +31,7 @@ namespace RebootReality.jelycho.Items {
// @MARK: Actor
//
protected override IActorData CreateActorData() {
return new ItemActorData {
Config = Config
};
return new ItemActorData { };
}
//

View File

@@ -37,6 +37,9 @@ namespace RebootReality.jelycho.Items {
public class ItemConfig {
public Sprite icon;
[Header("Stats")]
public ulong baseDamage = 10;
[Header("Mounting")]
[MaxLength(32)] public string characterEquippedMountSlotName = "hand_right";

View File

@@ -1,31 +1,24 @@
using RebootKit.Engine.Simulation;
using RebootReality.jelycho.Enemies;
using RebootKit.Engine.Main;
using RebootKit.Engine.Simulation;
using RebootReality.jelycho.Player;
using UnityEngine;
namespace RebootReality.jelycho.Items {
public class ItemQuickAttackAction : IItemQuickAttackAction {
static readonly Collider[] s_CollidersBuffer = new Collider[512];
public void Attack(Actor attacker, ItemActor itemActor) {
if (RR.World.Context is not WorldContext worldContext) {
return;
}
PlayerActor playerActor = attacker as PlayerActor;
if (playerActor == null) {
return;
}
Vector3 attackPosition = playerActor.GetAttackPosition();
float attackRadius = 1.0f;
int count = Physics.OverlapSphereNonAlloc(attackPosition, 3.0f, s_CollidersBuffer);
for (int i = 0; i < count; ++i) {
if (s_CollidersBuffer[i].TryGetComponent(out IKillable killable)) {
Actor killableActor = killable as Actor;
if (killableActor == attacker) {
continue;
}
playerActor.DealDamage(killable);
}
}
worldContext.HitboxManager.HitSphere(attackPosition, attackRadius, attacker, itemActor.Config.baseDamage);
}
}
}

View File

@@ -1,8 +1,6 @@
using System;
using System.Collections.Generic;
using System.Collections.Generic;
using Oddworm.Framework;
using R3;
using RebootKit.Engine.Extensions;
using RebootKit.Engine.Foundation;
using RebootKit.Engine.Main;
using RebootKit.Engine.Network;
using RebootKit.Engine.Simulation;
@@ -11,7 +9,6 @@ using RebootReality.jelycho.Items;
using Unity.Collections;
using Unity.Mathematics;
using UnityEngine;
using UnityEngine.AddressableAssets;
using Logger = RebootKit.Engine.Foundation.Logger;
namespace RebootReality.jelycho.Player {
@@ -298,6 +295,10 @@ namespace RebootReality.jelycho.Player {
m_QuickAttackComboCounter = 0;
PlayQuickAttackAnimation(m_QuickAttackComboCounter);
m_QuickAttackState = QuickAttackState.PlayingAnimation;
if (m_EquippedItem.Config.quickAttackAction != null) {
m_EquippedItem.Config.quickAttackAction.Attack(this, m_EquippedItem);
}
} else if (m_QuickAttackState == QuickAttackState.PlayingAnimation) {
m_QuickAttackComboCounter = 0;
} else if (m_QuickAttackState == QuickAttackState.WaitingForNextAttack) {
@@ -872,7 +873,10 @@ namespace RebootReality.jelycho.Player {
}
public Vector3 GetAttackPosition() {
return m_Camera.transform.position + m_Camera.transform.forward * 1.5f;
float3 origin = m_Camera.Camera.transform.position;
float3 dir = m_Camera.Camera.transform.forward;
float3 pos = origin + dir * 1.5f;
return pos;
}
//

View File

@@ -14,5 +14,6 @@ namespace RebootReality.jelycho {
[field: SerializeField] public FeedbacksManagerActor FeedbacksManager { get; private set; }
[field: SerializeField] public InfectedAreaManager InfectedAreaManager { get; private set; }
[field: SerializeField] public WavesManagerActor WavesManager { get; private set; }
[field: SerializeField] public HitboxManagerActor HitboxManager { get; private set; }
}
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: e4708616b97e6384fbc6a5d749870ef0
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -18,7 +18,8 @@
"GUID:df380645f10b7bc4b97d4f5eb6303d95",
"GUID:15fc0a57446b3144c949da3e2b9737a9",
"GUID:6fa512e17c315dd428ad692183dd0e8c",
"GUID:f2be1b7392ef6cc4eafd0ee8ac7a090a"
"GUID:f2be1b7392ef6cc4eafd0ee8ac7a090a",
"GUID:f0ca7da2c713f5849a8e3326866a5e49"
],
"includePlatforms": [],
"excludePlatforms": [],

View File

@@ -3095,6 +3095,17 @@ Transform:
m_Children: []
m_Father: {fileID: 222016980}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &892599089 stripped
MonoBehaviour:
m_CorrespondingSourceObject: {fileID: 5755821770765080340, guid: f6c7f1f3dc685c4448356f4ea740544b, type: 3}
m_PrefabInstance: {fileID: 1945001101671076745}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: f3973c6291404892a6d48dcb056b6de5, type: 3}
m_Name:
m_EditorClassIdentifier:
--- !u!1001 &932916444
PrefabInstance:
m_ObjectHideFlags: 0
@@ -3623,6 +3634,7 @@ MonoBehaviour:
<FeedbacksManager>k__BackingField: {fileID: 1985162060}
<InfectedAreaManager>k__BackingField: {fileID: 53297467}
<WavesManager>k__BackingField: {fileID: 222016979}
<HitboxManager>k__BackingField: {fileID: 892599089}
--- !u!4 &1109886928
Transform:
m_ObjectHideFlags: 0
@@ -5782,6 +5794,63 @@ PrefabInstance:
m_AddedGameObjects: []
m_AddedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: d2b9417a775b0c240ae113df746b9470, type: 3}
--- !u!1001 &1945001101671076745
PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
serializedVersion: 3
m_TransformParent: {fileID: 0}
m_Modifications:
- target: {fileID: 2783912424578442554, guid: f6c7f1f3dc685c4448356f4ea740544b, type: 3}
propertyPath: m_Name
value: hitbox_manager
objectReference: {fileID: 0}
- target: {fileID: 6529749461323432200, guid: f6c7f1f3dc685c4448356f4ea740544b, type: 3}
propertyPath: m_LocalPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 6529749461323432200, guid: f6c7f1f3dc685c4448356f4ea740544b, type: 3}
propertyPath: m_LocalPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 6529749461323432200, guid: f6c7f1f3dc685c4448356f4ea740544b, type: 3}
propertyPath: m_LocalPosition.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 6529749461323432200, guid: f6c7f1f3dc685c4448356f4ea740544b, type: 3}
propertyPath: m_LocalRotation.w
value: 1
objectReference: {fileID: 0}
- target: {fileID: 6529749461323432200, guid: f6c7f1f3dc685c4448356f4ea740544b, type: 3}
propertyPath: m_LocalRotation.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 6529749461323432200, guid: f6c7f1f3dc685c4448356f4ea740544b, type: 3}
propertyPath: m_LocalRotation.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 6529749461323432200, guid: f6c7f1f3dc685c4448356f4ea740544b, type: 3}
propertyPath: m_LocalRotation.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 6529749461323432200, guid: f6c7f1f3dc685c4448356f4ea740544b, type: 3}
propertyPath: m_LocalEulerAnglesHint.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 6529749461323432200, guid: f6c7f1f3dc685c4448356f4ea740544b, type: 3}
propertyPath: m_LocalEulerAnglesHint.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 6529749461323432200, guid: f6c7f1f3dc685c4448356f4ea740544b, type: 3}
propertyPath: m_LocalEulerAnglesHint.z
value: 0
objectReference: {fileID: 0}
m_RemovedComponents: []
m_RemovedGameObjects: []
m_AddedGameObjects: []
m_AddedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: f6c7f1f3dc685c4448356f4ea740544b, type: 3}
--- !u!1001 &2226069322246609429
PrefabInstance:
m_ObjectHideFlags: 0
@@ -5798,6 +5867,22 @@ PrefabInstance:
propertyPath: m_Volume
value:
objectReference: {fileID: 832575518}
- target: {fileID: 2497270776343246918, guid: 0df53bd579ab9f243a72724eb9876498, type: 3}
propertyPath: EmissionModule.enabled
value: 0
objectReference: {fileID: 0}
- target: {fileID: 2497270776343246918, guid: 0df53bd579ab9f243a72724eb9876498, type: 3}
propertyPath: InitialModule.startSize.scalar
value: 0.4
objectReference: {fileID: 0}
- target: {fileID: 2497270776343246918, guid: 0df53bd579ab9f243a72724eb9876498, type: 3}
propertyPath: InitialModule.startSize.minScalar
value: 0.2
objectReference: {fileID: 0}
- target: {fileID: 2497270776343246918, guid: 0df53bd579ab9f243a72724eb9876498, type: 3}
propertyPath: InitialModule.startLifetime.scalar
value: 5
objectReference: {fileID: 0}
- target: {fileID: 5052124571831639459, guid: 0df53bd579ab9f243a72724eb9876498, type: 3}
propertyPath: m_LocalPosition.x
value: 0
@@ -6371,6 +6456,7 @@ SceneRoots:
- {fileID: 6013030520165920174}
- {fileID: 8694581317741800515}
- {fileID: 6129090245799837616}
- {fileID: 1945001101671076745}
- {fileID: 1352279077}
- {fileID: 410087041}
- {fileID: 832575519}

View File

@@ -63,6 +63,7 @@ MonoBehaviour:
m_AttachmentSockets: []
<Config>k__BackingField:
icon: {fileID: -137324388, guid: 72d716a5a5f582f43b585b9599f6ecf2, type: 3}
baseDamage: 10
characterEquippedMountSlotName: dagger_right
additionalActorsToMount:
- actor:

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,136 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!21 &2100000
Material:
serializedVersion: 8
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: m_zombie_eyes
m_Shader: {fileID: 4800000, guid: 933532a4fcc9baf4fa0491de14d08ed7, type: 3}
m_Parent: {fileID: 0}
m_ModifiedSerializedProperties: 0
m_ValidKeywords: []
m_InvalidKeywords: []
m_LightmapFlags: 4
m_EnableInstancingVariants: 0
m_DoubleSidedGI: 0
m_CustomRenderQueue: -1
stringTagMap:
RenderType: Opaque
disabledShaderPasses:
- MOTIONVECTORS
m_LockedProperties:
m_SavedProperties:
serializedVersion: 3
m_TexEnvs:
- _BaseMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _BumpMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailAlbedoMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailMask:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailNormalMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _EmissionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MainTex:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MetallicGlossMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _OcclusionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _ParallaxMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _SpecGlossMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- unity_Lightmaps:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- unity_LightmapsInd:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- unity_ShadowMasks:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
m_Ints: []
m_Floats:
- _AddPrecomputedVelocity: 0
- _AlphaClip: 0
- _AlphaToMask: 0
- _Blend: 0
- _BlendModePreserveSpecular: 1
- _BumpScale: 1
- _ClearCoatMask: 0
- _ClearCoatSmoothness: 0
- _Cull: 2
- _Cutoff: 0.5
- _DetailAlbedoMapScale: 1
- _DetailNormalMapScale: 1
- _DstBlend: 0
- _DstBlendAlpha: 0
- _EnvironmentReflections: 1
- _GlossMapScale: 0
- _Glossiness: 0
- _GlossyReflections: 0
- _Metallic: 1
- _OcclusionStrength: 1
- _Parallax: 0.005
- _QueueOffset: 0
- _ReceiveShadows: 1
- _Smoothness: 1
- _SmoothnessTextureChannel: 0
- _SpecularHighlights: 1
- _SrcBlend: 1
- _SrcBlendAlpha: 1
- _Surface: 0
- _WorkflowMode: 1
- _ZWrite: 1
m_Colors:
- _BaseColor: {r: 0.6614222, g: 0.2688679, b: 1, a: 1}
- _Color: {r: 0.6614222, g: 0.26886788, b: 1, a: 1}
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
- _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1}
m_BuildTextureStacks: []
m_AllowLocking: 1
--- !u!114 &4507353353967158809
MonoBehaviour:
m_ObjectHideFlags: 11
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
m_Name:
m_EditorClassIdentifier:
version: 9

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 3177512bc9fe4514fa90701a3c0a1b59
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 2100000
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 3effe6a17d242d9499c02bb4ee13a325
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,139 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!21 &2100000
Material:
serializedVersion: 8
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: m_particle_blood
m_Shader: {fileID: 4800000, guid: 933532a4fcc9baf4fa0491de14d08ed7, type: 3}
m_Parent: {fileID: 0}
m_ModifiedSerializedProperties: 0
m_ValidKeywords:
- _SURFACE_TYPE_TRANSPARENT
m_InvalidKeywords: []
m_LightmapFlags: 4
m_EnableInstancingVariants: 0
m_DoubleSidedGI: 0
m_CustomRenderQueue: 3000
stringTagMap:
RenderType: Transparent
disabledShaderPasses:
- MOTIONVECTORS
- DepthOnly
- SHADOWCASTER
m_LockedProperties:
m_SavedProperties:
serializedVersion: 3
m_TexEnvs:
- _BaseMap:
m_Texture: {fileID: 2800000, guid: 0bbc8da6131e666478c9d8b3267d93f5, type: 3}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _BumpMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailAlbedoMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailMask:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailNormalMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _EmissionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MainTex:
m_Texture: {fileID: 2800000, guid: 0bbc8da6131e666478c9d8b3267d93f5, type: 3}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MetallicGlossMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _OcclusionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _ParallaxMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _SpecGlossMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- unity_Lightmaps:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- unity_LightmapsInd:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- unity_ShadowMasks:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
m_Ints: []
m_Floats:
- _AddPrecomputedVelocity: 0
- _AlphaClip: 0
- _AlphaToMask: 0
- _Blend: 2
- _BlendModePreserveSpecular: 0
- _BumpScale: 1
- _ClearCoatMask: 0
- _ClearCoatSmoothness: 0
- _Cull: 2
- _Cutoff: 0.584
- _DetailAlbedoMapScale: 1
- _DetailNormalMapScale: 1
- _DstBlend: 1
- _DstBlendAlpha: 1
- _EnvironmentReflections: 1
- _GlossMapScale: 0
- _Glossiness: 0
- _GlossyReflections: 0
- _Metallic: 0
- _OcclusionStrength: 1
- _Parallax: 0.005
- _QueueOffset: 0
- _ReceiveShadows: 1
- _Smoothness: 0
- _SmoothnessTextureChannel: 0
- _SpecularHighlights: 1
- _SrcBlend: 5
- _SrcBlendAlpha: 1
- _Surface: 1
- _WorkflowMode: 1
- _ZWrite: 0
m_Colors:
- _BaseColor: {r: 0.8773585, g: 0.24417053, b: 0.24417053, a: 1}
- _Color: {r: 0.8773585, g: 0.24417049, b: 0.24417049, a: 1}
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
- _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1}
m_BuildTextureStacks: []
m_AllowLocking: 1
--- !u!114 &3866650261043048554
MonoBehaviour:
m_ObjectHideFlags: 11
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
m_Name:
m_EditorClassIdentifier:
version: 9

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 9cd90e3b62619a142a5841e04c9f8c85
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 2100000
userData:
assetBundleName:
assetBundleVariant:

File diff suppressed because it is too large Load Diff

View File

@@ -1,6 +1,6 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &463060365655152598
--- !u!1 &2783912424578442554
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
@@ -8,22 +8,22 @@ GameObject:
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 5052124571831639459}
- component: {fileID: 1150693889540779376}
- component: {fileID: 6529749461323432200}
- component: {fileID: 5755821770765080340}
m_Layer: 0
m_Name: feedbacks_manager
m_Name: hitbox_manager
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &5052124571831639459
--- !u!4 &6529749461323432200
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 463060365655152598}
m_GameObject: {fileID: 2783912424578442554}
serializedVersion: 2
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
@@ -32,22 +32,22 @@ Transform:
m_Children: []
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &1150693889540779376
--- !u!114 &5755821770765080340
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 463060365655152598}
m_GameObject: {fileID: 2783912424578442554}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: c66663d8df214ee9b21785208a782cc0, type: 3}
m_Script: {fileID: 11500000, guid: f3973c6291404892a6d48dcb056b6de5, type: 3}
m_Name:
m_EditorClassIdentifier:
<SourceActorPath>k__BackingField:
<ActorStaticID>k__BackingField: 5576711600302125785
<ActorStaticID>k__BackingField: 5240543308446858750
<ActorID>k__BackingField: 0
m_ActorName:
m_ActorName: Hitbox Manager
actorRigidbody: {fileID: 0}
m_OverrideActorColliders: []
m_SetKinematicOnMount: 1
@@ -57,11 +57,8 @@ MonoBehaviour:
syncRotation: 0
syncScale: 0
m_AttachmentSockets: []
m_Volume: {fileID: 0}
m_QuickAttackIndicatorDuration: 0.3
m_QuickAttackIndicatorPaniniAppearSpeed: 1
m_QuickAttackIndicatorChromaticAppearSpeed: 5
m_QuickAttackIndicatorPaniniDisappearSpeed: 0.2
m_QuickAttackIndicatorChromaticDisappearSpeed: 2
m_QuickAttackIndicatorPaniniIntensity: 0.1
m_QuickAttackIndicatorChromaticIntensity: 1
m_HitboxDebugColor: {r: 1, g: 0, b: 0, a: 0.4}
m_HitboxDebugDuration: 3
m_HurtboxesLayerMask:
serializedVersion: 2
m_Bits: 4096

View File

@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: f6c7f1f3dc685c4448356f4ea740544b
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -5,6 +5,7 @@
"com.cysharp.unitask": "https://github.com/Cysharp/UniTask.git?path=src/UniTask/Assets/Plugins/UniTask",
"com.cysharp.zlinq": "https://github.com/Cysharp/ZLinq.git?path=src/ZLinq.Unity/Assets/ZLinq.Unity",
"com.github-glitchenzo.nugetforunity": "https://github.com/GlitchEnzo/NuGetForUnity.git?path=/src/NuGetForUnity",
"com.oddworm.dbgdraw": "https://github.com/pschraut/UnityDbgDraw.git#1.2.0",
"com.unity.2d.sprite": "1.0.0",
"com.unity.addressables": "2.2.2",
"com.unity.ai.navigation": "2.0.6",

View File

@@ -39,6 +39,15 @@
"dependencies": {},
"hash": "fe31ad0904abee296b5ea72c6073157accba59e8"
},
"com.oddworm.dbgdraw": {
"version": "https://github.com/pschraut/UnityDbgDraw.git#1.2.0",
"depth": 0,
"source": "git",
"dependencies": {
"com.unity.test-framework": "1.1.3"
},
"hash": "ca91b722aa56d937e53d664886771ede5122c8b2"
},
"com.singularitygroup.hotreload": {
"version": "file:com.singularitygroup.hotreload",
"depth": 0,

View File

@@ -17,7 +17,7 @@ TagManager:
- Beacon
- Gut
- Zombie
-
- Hurtboxes
-
-
-