Compare commits
8 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| eba2a8e0a6 | |||
| 18effac005 | |||
| 98cf38ac00 | |||
| cbca728bc3 | |||
| 9f0a889eb0 | |||
| b04369531b | |||
| 0bf2bbfb97 | |||
| 1d15377885 |
2
.gitmodules
vendored
2
.gitmodules
vendored
@@ -1,3 +1,3 @@
|
||||
[submodule "Assets/RebootKit"]
|
||||
path = Assets/RebootKit
|
||||
url = http://100.64.0.6:3000/RR/RebootKit.git
|
||||
url = https://git.chmurrka.eu/RR/RebootKit.git
|
||||
|
||||
@@ -15,7 +15,7 @@ MonoBehaviour:
|
||||
m_DefaultGroup: 64326db70156abe409df70a80bc62dc5
|
||||
m_currentHash:
|
||||
serializedVersion: 2
|
||||
Hash: 00000000000000000000000000000000
|
||||
Hash: 7161750430d6352c24e2b9d942610a3e
|
||||
m_OptimizeCatalogSize: 0
|
||||
m_BuildRemoteCatalog: 0
|
||||
m_CatalogRequestsTimeout: 0
|
||||
|
||||
Submodule Assets/RebootKit updated: d1583c9f58...40e2236f12
3
Assets/jelycho/Code/Actors.meta
Normal file
3
Assets/jelycho/Code/Actors.meta
Normal file
@@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 7ba665ddebe34f608f00db5d8107b685
|
||||
timeCreated: 1761225260
|
||||
@@ -5,7 +5,7 @@ using UnityEngine;
|
||||
using UnityEngine.AddressableAssets;
|
||||
using Logger = RebootKit.Engine.Foundation.Logger;
|
||||
|
||||
namespace RebootReality.jelycho {
|
||||
namespace RebootReality.jelycho.Actors {
|
||||
public class ActorSpawner : Actor {
|
||||
static readonly Logger s_Logger = new Logger(nameof(ActorSpawner));
|
||||
|
||||
@@ -6,7 +6,7 @@ using UnityEngine;
|
||||
using UnityEngine.Events;
|
||||
using Logger = RebootKit.Engine.Foundation.Logger;
|
||||
|
||||
namespace RebootReality.jelycho {
|
||||
namespace RebootReality.jelycho.Actors {
|
||||
public class ButtonActor : Actor, IInteractable {
|
||||
static readonly Logger s_Logger = new Logger(nameof(ButtonActor));
|
||||
|
||||
8
Assets/jelycho/Code/Actors/IHasHealth.cs
Normal file
8
Assets/jelycho/Code/Actors/IHasHealth.cs
Normal file
@@ -0,0 +1,8 @@
|
||||
namespace RebootReality.jelycho.Actors {
|
||||
public interface IHasHealth {
|
||||
ulong Health { get; }
|
||||
ulong MaxHealth { get; }
|
||||
|
||||
bool IsAlive();
|
||||
}
|
||||
}
|
||||
@@ -1,4 +1,4 @@
|
||||
namespace RebootReality.jelycho {
|
||||
namespace RebootReality.jelycho.Actors {
|
||||
public interface IInteractable {
|
||||
void SetHighlight(bool highlight);
|
||||
void Interact();
|
||||
@@ -4,6 +4,7 @@ using RebootKit.Engine.Main;
|
||||
using RebootKit.Engine.Network;
|
||||
using RebootKit.Engine.Simulation;
|
||||
using RebootReality.jelycho.InfectedArea;
|
||||
using RebootReality.jelycho.Main;
|
||||
using Unity.Mathematics;
|
||||
using UnityEngine;
|
||||
using UnityEngine.AddressableAssets;
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
using RebootKit.Engine.Network;
|
||||
using RebootKit.Engine.Simulation;
|
||||
using RebootReality.jelycho.Actors;
|
||||
using RebootReality.jelycho.Enemies;
|
||||
using UnityEngine;
|
||||
|
||||
@@ -24,7 +25,7 @@ namespace RebootReality.jelycho.Beacons {
|
||||
}
|
||||
}
|
||||
|
||||
public class MotherActor : Actor, IKillable {
|
||||
public class MotherActor : Actor, IHasHealth {
|
||||
MotherActorData m_ActorData = new MotherActorData();
|
||||
|
||||
[field: SerializeField] public Transform GutConnector { get; private set; }
|
||||
@@ -35,16 +36,24 @@ namespace RebootReality.jelycho.Beacons {
|
||||
protected override IActorData CreateActorData() {
|
||||
return m_ActorData;
|
||||
}
|
||||
|
||||
|
||||
//
|
||||
// @MARK: IKillable
|
||||
//
|
||||
// @MARK: IHasHealth
|
||||
//
|
||||
public ulong Health {
|
||||
get {
|
||||
return m_ActorData.Health;
|
||||
}
|
||||
|
||||
private set {
|
||||
m_ActorData.Health = value;
|
||||
}
|
||||
}
|
||||
|
||||
[field: SerializeField] public ulong MaxHealth { get; private set; }
|
||||
|
||||
public bool IsAlive() {
|
||||
return m_ActorData.Health > 0;
|
||||
}
|
||||
|
||||
public ulong OnHit(Actor attacker, ulong damage) {
|
||||
return damage;
|
||||
}
|
||||
}
|
||||
}
|
||||
3
Assets/jelycho/Code/Damage.meta
Normal file
3
Assets/jelycho/Code/Damage.meta
Normal file
@@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: aaf9c8fc3fd047bfa82bdf2c1422c6be
|
||||
timeCreated: 1761224582
|
||||
@@ -7,7 +7,7 @@ using Unity.Mathematics;
|
||||
using UnityEngine;
|
||||
using Logger = RebootKit.Engine.Foundation.Logger;
|
||||
|
||||
namespace RebootReality.jelycho {
|
||||
namespace RebootReality.jelycho.Damage {
|
||||
public class HitboxManagerActor : Actor {
|
||||
static readonly Logger s_Logger = new Logger(nameof(HitboxManagerActor));
|
||||
static readonly Collider[] s_CollidersBuffer = new Collider[512];
|
||||
@@ -54,25 +54,6 @@ namespace RebootReality.jelycho {
|
||||
|
||||
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);
|
||||
// }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
using RebootKit.Engine.Simulation;
|
||||
using Unity.Mathematics;
|
||||
|
||||
namespace RebootReality.jelycho {
|
||||
namespace RebootReality.jelycho.Damage {
|
||||
public interface IHurtbox {
|
||||
void ReceiveDamage(Actor attacker, ulong damage, float3 worldHitPos);
|
||||
}
|
||||
@@ -1,10 +0,0 @@
|
||||
using RebootKit.Engine.Simulation;
|
||||
|
||||
namespace RebootReality.jelycho.Enemies {
|
||||
public interface IKillable {
|
||||
bool IsAlive();
|
||||
|
||||
// @NOTE: Returns damage dealt
|
||||
ulong OnHit(Actor attacker, ulong damage);
|
||||
}
|
||||
}
|
||||
@@ -2,6 +2,7 @@
|
||||
using RebootKit.Engine.Extensions;
|
||||
using RebootKit.Engine.Main;
|
||||
using RebootKit.Engine.Simulation;
|
||||
using RebootReality.jelycho.Enemies.Zombie;
|
||||
using Unity.Collections;
|
||||
using UnityEngine;
|
||||
using UnityEngine.AddressableAssets;
|
||||
|
||||
3
Assets/jelycho/Code/Enemies/Zombie.meta
Normal file
3
Assets/jelycho/Code/Enemies/Zombie.meta
Normal file
@@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 72a9c46420c34ee594e3a68ac031a649
|
||||
timeCreated: 1761227055
|
||||
@@ -6,15 +6,19 @@ using RebootKit.Engine.Extensions;
|
||||
using RebootKit.Engine.Main;
|
||||
using RebootKit.Engine.Network;
|
||||
using RebootKit.Engine.Simulation;
|
||||
using RebootReality.jelycho.Actors;
|
||||
using RebootReality.jelycho.Beacons;
|
||||
using RebootReality.jelycho.Main;
|
||||
using RebootReality.jelycho.Player;
|
||||
using TriInspector;
|
||||
using Unity.Mathematics;
|
||||
using UnityEngine;
|
||||
using UnityEngine.AI;
|
||||
using Logger = RebootKit.Engine.Foundation.Logger;
|
||||
using Random = UnityEngine.Random;
|
||||
using UnityEvent = UnityEngine.Events.UnityEvent;
|
||||
|
||||
namespace RebootReality.jelycho.Enemies {
|
||||
namespace RebootReality.jelycho.Enemies.Zombie {
|
||||
public class ZombieActorData : IActorData {
|
||||
public void Serialize(NetworkBufferWriter writer) {
|
||||
}
|
||||
@@ -61,33 +65,61 @@ namespace RebootReality.jelycho.Enemies {
|
||||
}
|
||||
}
|
||||
|
||||
public class ZombieBlackboard {
|
||||
public ZombieActor Self;
|
||||
class ZombiePickVictim : IStrategy {
|
||||
public BehaviourNode.Status Process(Actor target, float dt) {
|
||||
if (target is not ZombieActor zombie) {
|
||||
return BehaviourNode.Status.Failure;
|
||||
}
|
||||
|
||||
Actor victim = zombie.FindNewVictim();
|
||||
if (victim == null) {
|
||||
return BehaviourNode.Status.Failure;
|
||||
}
|
||||
|
||||
return BehaviourNode.Status.Success;
|
||||
}
|
||||
}
|
||||
|
||||
class ZombieGoToPlayer : IStrategy {
|
||||
public BehaviourNode.Status Process(Actor target, float dt) {
|
||||
if (target is not ZombieActor zombie) {
|
||||
return BehaviourNode.Status.Failure;
|
||||
}
|
||||
|
||||
if (!zombie.HasTravelDestination) {
|
||||
float3 victimPos = zombie.Victim.transform.position;
|
||||
float dstToVictimSq = math.distancesq(victimPos, zombie.transform.position);
|
||||
|
||||
if (dstToVictimSq < 1.0f) {
|
||||
return BehaviourNode.Status.Success;
|
||||
}
|
||||
|
||||
zombie.GoTo(victimPos);
|
||||
return BehaviourNode.Status.Running;
|
||||
}
|
||||
|
||||
return BehaviourNode.Status.Running;
|
||||
}
|
||||
}
|
||||
|
||||
[DeclareBoxGroup("Body parts")]
|
||||
public class ZombieActor : Actor, IKillable {
|
||||
[DeclareBoxGroup("Animations")]
|
||||
public class ZombieActor : Actor, IHasHealth {
|
||||
static readonly Logger s_Logger = new Logger(nameof(ZombieActor));
|
||||
|
||||
static readonly int s_MovementSpeedHash = Animator.StringToHash("MovementSpeed");
|
||||
|
||||
enum AIState {
|
||||
Idle,
|
||||
Dead,
|
||||
AttackBase,
|
||||
AttackCharacter,
|
||||
PanicEscape,
|
||||
Berserk
|
||||
}
|
||||
|
||||
[SerializeField] AnimancerComponent m_Animancer;
|
||||
|
||||
[SerializeField] NavMeshAgent m_NavAgent;
|
||||
public NavMeshAgent NavAgent {
|
||||
get {
|
||||
return m_NavAgent;
|
||||
}
|
||||
}
|
||||
|
||||
[SerializeField] Collider m_RootCollider;
|
||||
[SerializeField] Rigidbody[] m_RagdollRigidbodies;
|
||||
|
||||
[SerializeField] float m_MaxAttackDistance = 1.0f;
|
||||
[SerializeField] float m_MaxAttackDistance = 2.0f;
|
||||
[SerializeField] float m_LoseInterestMinDistance = 10.0f;
|
||||
[SerializeField] ulong m_BaseDamage = 10;
|
||||
[SerializeField] float m_AttackDelay = 1.0f;
|
||||
@@ -97,31 +129,61 @@ namespace RebootReality.jelycho.Enemies {
|
||||
[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;
|
||||
|
||||
PlayerActor m_PlayerTarget;
|
||||
float m_NextAttackTimer;
|
||||
[SerializeField, Group("Animations")] TransitionAsset m_GroundLocomotion;
|
||||
[SerializeField, Group("Animations")] StringAsset m_GroundLocomotionPropertyRight;
|
||||
[SerializeField, Group("Animations")] StringAsset m_GroundLocomotionPropertyForward;
|
||||
SmoothedVector2Parameter m_SmoothLocomotionDirection;
|
||||
|
||||
public UnityEvent died = new UnityEvent();
|
||||
[SerializeField, Group("Animations")] AnimationClip[] m_AttackClips;
|
||||
|
||||
BehaviourTree m_BehaviourTree;
|
||||
|
||||
public enum MindState {
|
||||
Normal,
|
||||
RunAway,
|
||||
Berserk
|
||||
}
|
||||
public bool IsRagdoll { get; private set; } = false;
|
||||
public MindState Mind { get; private set; } = MindState.Normal;
|
||||
public Actor Victim { get; private set; }
|
||||
|
||||
public bool HasTravelDestination { get; private set; }
|
||||
public float3 TravelDestination { get; private set; }
|
||||
|
||||
public UnityEvent died = new UnityEvent();
|
||||
|
||||
//
|
||||
// @MARK: Unity callbacks
|
||||
//
|
||||
void Awake() {
|
||||
SetRagdollLocal(false);
|
||||
SetRagdollLocal(IsRagdoll);
|
||||
|
||||
m_SmoothLocomotionDirection = new SmoothedVector2Parameter(m_Animancer,
|
||||
m_GroundLocomotionPropertyRight,
|
||||
m_GroundLocomotionPropertyForward,
|
||||
0.1f);
|
||||
m_Animancer.Play(m_GroundLocomotion);
|
||||
|
||||
m_BehaviourTree = new BehaviourTree("Zombie Behaviour");
|
||||
|
||||
var rootSelector = new Selector("Root");
|
||||
m_BehaviourTree.AddChild(rootSelector);
|
||||
|
||||
var attackPlayerSequence = new Sequence("Attack Player",
|
||||
() => m_PlayerTarget != null);
|
||||
rootSelector.AddChild(attackPlayerSequence);
|
||||
|
||||
rootSelector.AddChild(CreateNormalSequence());
|
||||
}
|
||||
|
||||
BehaviourNode CreateNormalSequence() {
|
||||
var normalSequence = new Sequence("Normal", () => Mind == MindState.Normal);
|
||||
normalSequence.AddChild(new Leaf("Pick Victim", new ZombiePickVictim()));
|
||||
|
||||
var attackPlayerSequence = new Sequence("Attack Player", IsVictimPlayer);
|
||||
normalSequence.AddChild(attackPlayerSequence);
|
||||
attackPlayerSequence.AddChild(new Leaf("Go to Player", new ZombieGoToPlayer()));
|
||||
|
||||
var attackMotherSequence = new Sequence("Attack Mother", IsVictimMother);
|
||||
normalSequence.AddChild(attackMotherSequence);
|
||||
return normalSequence;
|
||||
}
|
||||
|
||||
//
|
||||
@@ -134,8 +196,11 @@ namespace RebootReality.jelycho.Enemies {
|
||||
return;
|
||||
}
|
||||
|
||||
float velXZ = m_NavAgent.velocity.With(y: 0).magnitude;
|
||||
// m_Animator.SetFloat(s_MovementSpeedHash, velXZ);
|
||||
float3 vel = m_NavAgent.velocity;
|
||||
float forwardVelocity = math.dot(m_NavAgent.transform.forward, vel);
|
||||
float rightVelocity = math.dot(m_NavAgent.transform.right, vel);
|
||||
|
||||
m_SmoothLocomotionDirection.TargetValue = new Vector2(rightVelocity, forwardVelocity);
|
||||
}
|
||||
|
||||
public override void OnServerTick(float deltaTime) {
|
||||
@@ -146,107 +211,71 @@ namespace RebootReality.jelycho.Enemies {
|
||||
return;
|
||||
}
|
||||
|
||||
m_BehaviourTree.Process(deltaTime);
|
||||
return;
|
||||
if (HasTravelDestination) {
|
||||
float3 pos = transform.position;
|
||||
|
||||
switch (m_State) {
|
||||
case AIState.Idle: {
|
||||
ServerTickIdle(deltaTime);
|
||||
break;
|
||||
}
|
||||
|
||||
case AIState.AttackBase: {
|
||||
ServerTickAttackBase(deltaTime);
|
||||
break;
|
||||
}
|
||||
|
||||
case AIState.AttackCharacter: {
|
||||
ServerTickAttackCharacter(deltaTime);
|
||||
break;
|
||||
}
|
||||
|
||||
case AIState.PanicEscape: {
|
||||
break;
|
||||
if (math.distancesq(pos, TravelDestination) <= 1.0f) {
|
||||
HasTravelDestination = false;
|
||||
m_NavAgent.isStopped = true;
|
||||
}
|
||||
}
|
||||
|
||||
case AIState.Berserk: {
|
||||
ServerTickBerserk(deltaTime);
|
||||
break;
|
||||
}
|
||||
}
|
||||
m_BehaviourTree.Process(this, deltaTime);
|
||||
}
|
||||
|
||||
//
|
||||
// @MARK: Zombie
|
||||
//
|
||||
void ServerTickIdle(float dt) {
|
||||
(PlayerActor playerActor, float distSqToPlayer) = FindClosestPlayerActor(transform.position);
|
||||
if (playerActor == null || distSqToPlayer >= m_LoseInterestMinDistance * m_LoseInterestMinDistance) {
|
||||
return;
|
||||
public bool GoTo(float3 pos) {
|
||||
if (!RR.IsServer()) {
|
||||
s_Logger.Error("Only server can call GoTo");
|
||||
return false;
|
||||
}
|
||||
|
||||
m_State = AIState.AttackCharacter;
|
||||
m_PlayerTarget = playerActor;
|
||||
|
||||
s_Logger.Info($"Found player actor to attack: {m_PlayerTarget}");
|
||||
m_NavAgent.SetDestination(m_PlayerTarget.transform.position);
|
||||
TravelDestination = pos;
|
||||
HasTravelDestination = true;
|
||||
m_NavAgent.isStopped = false;
|
||||
return m_NavAgent.SetDestination(TravelDestination);
|
||||
}
|
||||
|
||||
public bool IsVictimPlayer() {
|
||||
return Victim is PlayerActor;
|
||||
}
|
||||
|
||||
public bool IsVictimMother() {
|
||||
return Victim is MotherActor;
|
||||
}
|
||||
|
||||
void ServerTickAttackCharacter(float dt) {
|
||||
if (m_PlayerTarget == null || !m_PlayerTarget.IsAlive()) {
|
||||
SetIdleState();
|
||||
return;
|
||||
public Actor FindNewVictim() {
|
||||
if (!RR.IsServer()) {
|
||||
s_Logger.Error("Only server can call FindNewVictim");
|
||||
return null;
|
||||
}
|
||||
|
||||
float3 playerPos = m_PlayerTarget.transform.position;
|
||||
float3 zombiePos = transform.position;
|
||||
|
||||
float distToPlayerSq = math.distancesq(playerPos, zombiePos);
|
||||
if (distToPlayerSq >= m_LoseInterestMinDistance * m_LoseInterestMinDistance) {
|
||||
SetIdleState();
|
||||
return;
|
||||
}
|
||||
|
||||
if (distToPlayerSq <= m_MaxAttackDistance * m_MaxAttackDistance) {
|
||||
m_NextAttackTimer -= dt;
|
||||
if (m_NextAttackTimer <= 0.0f) {
|
||||
// m_Animator.CrossFade("Attack_0", 0.0f, 0);
|
||||
m_NextAttackTimer = m_AttackDelay;
|
||||
}
|
||||
Victim = null;
|
||||
|
||||
if (!m_NavAgent.isStopped) {
|
||||
m_NavAgent.isStopped = true;
|
||||
}
|
||||
return;
|
||||
(PlayerActor playerActor, float distSqToPlayer) = FindClosestPlayerActor(transform.position);
|
||||
if (playerActor != null && distSqToPlayer < m_LoseInterestMinDistance * m_LoseInterestMinDistance) {
|
||||
Victim = playerActor;
|
||||
return Victim;
|
||||
}
|
||||
|
||||
if (RR.World.Context is WorldContext ctx) {
|
||||
Victim = ctx.BaseManager.Mother;
|
||||
return Victim;
|
||||
}
|
||||
|
||||
float distFromDstToTargetSq = math.distancesq(playerPos, m_NavAgent.destination);
|
||||
if (distFromDstToTargetSq > 1.0f) {
|
||||
m_NavAgent.isStopped = false;
|
||||
m_NavAgent.SetDestination(m_PlayerTarget.transform.position);
|
||||
}
|
||||
}
|
||||
|
||||
void ServerTickAttackBase(float dt) {
|
||||
|
||||
}
|
||||
|
||||
void ServerTickBerserk(float dt) {
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
void SetIdleState() {
|
||||
m_PlayerTarget = null;
|
||||
m_State = AIState.Idle;
|
||||
public void PerformAttack() {
|
||||
m_Animancer.Play(m_AttackClips.Random());
|
||||
}
|
||||
|
||||
void Die() {
|
||||
s_Logger.Info("Die");
|
||||
EnableRagdoll();
|
||||
m_NavAgent.enabled = false;
|
||||
|
||||
m_State = AIState.Dead;
|
||||
died.Invoke();
|
||||
}
|
||||
|
||||
@@ -281,7 +310,7 @@ namespace RebootReality.jelycho.Enemies {
|
||||
}
|
||||
|
||||
protected override void OnActorEventClient(ActorEvent actorEvent) {
|
||||
ZombieActorEvents zombieEvent = (ZombieActorEvents) actorEvent.EventID;
|
||||
var zombieEvent = (ZombieActorEvents) actorEvent.EventID;
|
||||
|
||||
switch (zombieEvent) {
|
||||
case ZombieActorEvents.EnableRagdoll: {
|
||||
@@ -309,35 +338,14 @@ namespace RebootReality.jelycho.Enemies {
|
||||
}
|
||||
|
||||
//
|
||||
// @MARK: IKillable
|
||||
// @MARK: IHasHealth
|
||||
//
|
||||
public ulong Health { get; private set; } = 100;
|
||||
public ulong MaxHealth { get; private set; } = 100;
|
||||
|
||||
public bool IsAlive() {
|
||||
return Health > 0;
|
||||
}
|
||||
|
||||
public ulong OnHit(Actor attacker, ulong damage) {
|
||||
if (!RR.IsServer()) {
|
||||
s_Logger.Error("OnHit can only be called on the server.");
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (!IsAlive()) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
s_Logger.Info($"Hit: {damage}");
|
||||
|
||||
damage = math.min(damage, Health);
|
||||
Health -= damage;
|
||||
if (Health <= 0) {
|
||||
Die();
|
||||
return damage;
|
||||
}
|
||||
|
||||
return damage;
|
||||
}
|
||||
|
||||
//
|
||||
// @MARK: damage?
|
||||
@@ -348,7 +356,12 @@ namespace RebootReality.jelycho.Enemies {
|
||||
}
|
||||
}
|
||||
|
||||
public void ReceiveDamage(ulong damage, ZombieBodyPartType bodyPartType) {
|
||||
public void ReceiveBodyPartDamage(ulong damage, ZombieBodyPartType bodyPartType) {
|
||||
if (!RR.IsServer()) {
|
||||
s_Logger.Error("ReceiveBodyPartDamage can only be called on the server.");
|
||||
return;
|
||||
}
|
||||
|
||||
if (!IsAlive()) {
|
||||
return;
|
||||
}
|
||||
@@ -358,10 +371,26 @@ namespace RebootReality.jelycho.Enemies {
|
||||
return;
|
||||
}
|
||||
|
||||
bodyPart.HideParts();
|
||||
bodyPart.bloodStreamParticles.Play();
|
||||
bool isBodyPartDestroyed = Random.Range(0.0f, 1.0f) > 0.5f;
|
||||
|
||||
Die();
|
||||
if (isBodyPartDestroyed) {
|
||||
bodyPart.HideParts();
|
||||
bodyPart.bloodStreamParticles.Play();
|
||||
|
||||
if (bodyPartType == ZombieBodyPartType.Head) {
|
||||
damage = Health;
|
||||
} else if (bodyPartType == ZombieBodyPartType.LeftLeg ||
|
||||
bodyPartType == ZombieBodyPartType.RightLeg) {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
damage = math.min(damage, Health);
|
||||
|
||||
Health -= damage;
|
||||
if (Health <= 0) {
|
||||
Die();
|
||||
}
|
||||
}
|
||||
|
||||
public bool HasBodyPart(ZombieBodyPartType bodyPart) {
|
||||
@@ -1,10 +1,12 @@
|
||||
using RebootKit.Engine.Main;
|
||||
using RebootKit.Engine.Simulation;
|
||||
using RebootReality.jelycho.Damage;
|
||||
using RebootReality.jelycho.Main;
|
||||
using Unity.Mathematics;
|
||||
using UnityEngine;
|
||||
using UnityEngine.Assertions;
|
||||
|
||||
namespace RebootReality.jelycho.Enemies {
|
||||
namespace RebootReality.jelycho.Enemies.Zombie {
|
||||
public class ZombieHurtbox : MonoBehaviour, IHurtbox {
|
||||
public ZombieActor owner;
|
||||
[SerializeField] ZombieBodyPartType m_BodyPart = ZombieBodyPartType.Body;
|
||||
@@ -18,7 +20,7 @@ namespace RebootReality.jelycho.Enemies {
|
||||
return;
|
||||
}
|
||||
|
||||
owner.ReceiveDamage(damage, m_BodyPart);
|
||||
owner.ReceiveBodyPartDamage(damage, m_BodyPart);
|
||||
|
||||
if (RR.World.Context is WorldContext worldContext) {
|
||||
worldContext.FeedbacksManager.SpawnBloodSplash(worldHitPos);
|
||||
@@ -1,5 +1,6 @@
|
||||
using System.Collections.Generic;
|
||||
using RebootKit.Engine.Main;
|
||||
using RebootReality.jelycho.Main;
|
||||
using Unity.Mathematics;
|
||||
using UnityEngine;
|
||||
using UnityEngine.Experimental.Rendering;
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
using HighlightPlus;
|
||||
using RebootKit.Engine.Network;
|
||||
using RebootKit.Engine.Simulation;
|
||||
using RebootReality.jelycho.Actors;
|
||||
using UnityEngine;
|
||||
using Logger = RebootKit.Engine.Foundation.Logger;
|
||||
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
using RebootKit.Engine.Main;
|
||||
using RebootKit.Engine.Simulation;
|
||||
using RebootReality.jelycho.Main;
|
||||
using RebootReality.jelycho.Player;
|
||||
using UnityEngine;
|
||||
|
||||
@@ -10,13 +11,13 @@ namespace RebootReality.jelycho.Items {
|
||||
return;
|
||||
}
|
||||
|
||||
PlayerActor playerActor = attacker as PlayerActor;
|
||||
var playerActor = attacker as PlayerActor;
|
||||
if (playerActor == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
Vector3 attackPosition = playerActor.GetAttackPosition();
|
||||
float attackRadius = 1.0f;
|
||||
float attackRadius = 0.5f;
|
||||
|
||||
worldContext.HitboxManager.HitSphere(attackPosition, attackRadius, attacker, itemActor.Config.baseDamage);
|
||||
}
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
using RebootKit.Engine.Main;
|
||||
using RebootKit.Engine.Simulation;
|
||||
using RebootReality.jelycho.Main;
|
||||
using RebootReality.jelycho.Player;
|
||||
using UnityEngine;
|
||||
using Logger = RebootKit.Engine.Foundation.Logger;
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: d9d82f5af5ffea248a3cac2b7ea4a4af
|
||||
guid: aadf824e76564404c8d43d99803c60a1
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
@@ -2,5 +2,7 @@
|
||||
public static class GameConsts {
|
||||
public const string k_AddComponentMenu = "Jelycho/";
|
||||
public const string k_CreateAssetMenu = "Jelycho/";
|
||||
|
||||
public const string k_FPPActionMapName = "FPP";
|
||||
}
|
||||
}
|
||||
@@ -1,12 +1,13 @@
|
||||
using RebootKit.Engine.Simulation;
|
||||
using RebootReality.jelycho.Beacons;
|
||||
using RebootReality.jelycho.Damage;
|
||||
using RebootReality.jelycho.Enemies;
|
||||
using RebootReality.jelycho.Feedbacks;
|
||||
using RebootReality.jelycho.InfectedArea;
|
||||
using RebootReality.jelycho.Ropes;
|
||||
using UnityEngine;
|
||||
|
||||
namespace RebootReality.jelycho {
|
||||
namespace RebootReality.jelycho.Main {
|
||||
public class WorldContext : MonoBehaviour, IWorldContext {
|
||||
[field: SerializeField] public Transform PlayerSpawnPoint { get; private set; }
|
||||
[field: SerializeField] public RopesManager RopesManager { get; private set; }
|
||||
@@ -4,15 +4,17 @@ using RebootKit.Engine.Extensions;
|
||||
using RebootKit.Engine.Main;
|
||||
using RebootKit.Engine.Network;
|
||||
using RebootKit.Engine.Simulation;
|
||||
using RebootReality.jelycho.Actors;
|
||||
using RebootReality.jelycho.Enemies;
|
||||
using RebootReality.jelycho.Items;
|
||||
using RebootReality.jelycho.Main;
|
||||
using Unity.Collections;
|
||||
using Unity.Mathematics;
|
||||
using UnityEngine;
|
||||
using Logger = RebootKit.Engine.Foundation.Logger;
|
||||
|
||||
namespace RebootReality.jelycho.Player {
|
||||
public class PlayerActor : Actor, IKillable {
|
||||
public class PlayerActor : Actor, IHasHealth {
|
||||
static readonly Logger s_Logger = new Logger(nameof(PlayerActor));
|
||||
|
||||
[SerializeField] PlayerAnimator m_PlayerAnimator;
|
||||
@@ -450,8 +452,10 @@ namespace RebootReality.jelycho.Player {
|
||||
} else {
|
||||
InterpolateActorState(deltaTime);
|
||||
}
|
||||
|
||||
TickCharacterRotation(deltaTime);
|
||||
}
|
||||
|
||||
void LateUpdate() {
|
||||
TickCharacterRotation(Time.deltaTime);
|
||||
}
|
||||
|
||||
protected override void OnActorCommandServer(ulong senderID, ActorCommand actorCommand) {
|
||||
@@ -524,23 +528,6 @@ namespace RebootReality.jelycho.Player {
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
case PlayerActorCommands.DealDamage: {
|
||||
PlayerActorDealDamageCommand dealDamageCommand = new PlayerActorDealDamageCommand();
|
||||
DataSerializationUtils.Deserialize(actorCommand.Data, ref dealDamageCommand);
|
||||
|
||||
Actor targetActor = RR.FindSpawnedActor(dealDamageCommand.TargetActorID);
|
||||
if (targetActor == null) {
|
||||
s_Logger.Error($"Target actor with ID {dealDamageCommand.TargetActorID} not found.");
|
||||
break;
|
||||
}
|
||||
|
||||
if (targetActor is IKillable killable) {
|
||||
killable.OnHit(this, 100);
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -671,18 +658,6 @@ namespace RebootReality.jelycho.Player {
|
||||
}
|
||||
}
|
||||
|
||||
public void DealDamage(IKillable target) {
|
||||
if (target is Actor actor) {
|
||||
var dealDamageCommand = new PlayerActorDealDamageCommand {
|
||||
TargetActorID = actor.ActorID
|
||||
};
|
||||
SendActorCommand((byte) PlayerActorCommands.DealDamage,
|
||||
ref dealDamageCommand);
|
||||
} else {
|
||||
s_Logger.Error($"Player can only deal damage to other actors!");
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
// @MARK: Remote
|
||||
//
|
||||
@@ -828,16 +803,15 @@ namespace RebootReality.jelycho.Player {
|
||||
}
|
||||
|
||||
//
|
||||
// @MARK: IKillable
|
||||
// @MARK: IHasHealth
|
||||
//
|
||||
public ulong Health { get; private set; } = 100;
|
||||
public ulong MaxHealth { get; private set; } = 100;
|
||||
|
||||
public bool IsAlive() {
|
||||
return true;
|
||||
}
|
||||
|
||||
public ulong OnHit(Actor attacker, ulong damage) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
//
|
||||
// @MARK: Common
|
||||
//
|
||||
@@ -845,7 +819,6 @@ namespace RebootReality.jelycho.Player {
|
||||
float3 targetCharacterForward = math.normalize(LookDirection.With(y: 0.0f));
|
||||
float3 currentCharacterForward = math.normalize(m_CharacterForwardTransform.forward.With(y: 0.0f));
|
||||
|
||||
// float angleDeg = Mathf.DeltaAngle(m_Camera.Yaw, m_Locomotion.YawRotation);
|
||||
float angleRad = math.acos(math.clamp(math.dot(targetCharacterForward, currentCharacterForward) / (math.length(targetCharacterForward) * math.length(currentCharacterForward)), -1f, 1f));
|
||||
float angleDeg = math.degrees(angleRad);
|
||||
|
||||
@@ -1054,8 +1027,7 @@ namespace RebootReality.jelycho.Player {
|
||||
DropItem = 0x03,
|
||||
EquipItem = 0x04,
|
||||
SelectItemSlot = 0x05,
|
||||
RequestHandsAnimation = 0x06,
|
||||
DealDamage = 0x07
|
||||
RequestHandsAnimation = 0x06
|
||||
}
|
||||
|
||||
struct PlayerActorPickupItemCommand : IActorData {
|
||||
@@ -1138,22 +1110,6 @@ namespace RebootReality.jelycho.Player {
|
||||
}
|
||||
}
|
||||
|
||||
struct PlayerActorDealDamageCommand : IActorData {
|
||||
public ushort TargetActorID;
|
||||
|
||||
public int GetMaxBytes() {
|
||||
return sizeof(ushort);
|
||||
}
|
||||
|
||||
public void Serialize(NetworkBufferWriter writer) {
|
||||
writer.Write(TargetActorID);
|
||||
}
|
||||
|
||||
public void Deserialize(NetworkBufferReader reader) {
|
||||
reader.Read(out TargetActorID);
|
||||
}
|
||||
}
|
||||
|
||||
// @MARK: Player Actor Events
|
||||
enum PlayerActorEvents : byte {
|
||||
None = 0x00,
|
||||
|
||||
@@ -1,9 +1,12 @@
|
||||
using System;
|
||||
using RebootKit.Engine.Extensions;
|
||||
using RebootKit.Engine.Foundation;
|
||||
using RebootKit.Engine.Input;
|
||||
using RebootKit.Engine.Main;
|
||||
using RebootKit.Engine.Network;
|
||||
using RebootKit.Engine.Simulation;
|
||||
using RebootReality.jelycho.Actors;
|
||||
using RebootReality.jelycho.Main;
|
||||
using RebootReality.jelycho.Player.HUD;
|
||||
using Unity.Mathematics;
|
||||
using UnityEngine;
|
||||
@@ -18,16 +21,24 @@ namespace RebootReality.jelycho.Player {
|
||||
|
||||
PlayerActor m_Actor;
|
||||
PlayerHUD m_HUD;
|
||||
|
||||
InputState m_InputState;
|
||||
|
||||
IDisposable m_TargetInteractableLabelDisposable;
|
||||
|
||||
IInteractable m_Interactable;
|
||||
|
||||
void Awake() {
|
||||
m_HUD = Instantiate(m_Config.playerHUDPrefab);
|
||||
m_InputState = RR.Input.NewInputState("Player Controller");
|
||||
m_InputState.HideCursor = true;
|
||||
m_InputState.LockCursor = true;
|
||||
m_InputState.AddActiveMap(GameConsts.k_FPPActionMapName);
|
||||
}
|
||||
|
||||
void OnDestroy() {
|
||||
m_InputState?.Dispose();
|
||||
m_InputState = null;
|
||||
|
||||
if (m_HUD != null) {
|
||||
Destroy(m_HUD.gameObject);
|
||||
m_HUD = null;
|
||||
@@ -39,12 +50,12 @@ namespace RebootReality.jelycho.Player {
|
||||
}
|
||||
|
||||
void OnEnable() {
|
||||
RR.Input.LockCursor();
|
||||
m_InputState.IsActive = true;
|
||||
RR.Input.EnableControls();
|
||||
}
|
||||
|
||||
void OnDisable() {
|
||||
RR.Input.UnlockCursor();
|
||||
m_InputState.IsActive = false;
|
||||
RR.Input.DisableControls();
|
||||
}
|
||||
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
using RebootKit.Engine.Main;
|
||||
using RebootReality.jelycho.Main;
|
||||
using Unity.Mathematics;
|
||||
using UnityEngine;
|
||||
using UnityEngine.Assertions;
|
||||
|
||||
@@ -1,5 +1,153 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!1 &7002381419506676794
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 2468028753576640433}
|
||||
- component: {fileID: 5396192429513740654}
|
||||
m_Layer: 8
|
||||
m_Name: Trail
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 0
|
||||
--- !u!4 &2468028753576640433
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 7002381419506676794}
|
||||
serializedVersion: 2
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: -0.032, y: 0.627, z: 0}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 711236274234327174}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!96 &5396192429513740654
|
||||
TrailRenderer:
|
||||
serializedVersion: 3
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 7002381419506676794}
|
||||
m_Enabled: 1
|
||||
m_CastShadows: 1
|
||||
m_ReceiveShadows: 1
|
||||
m_DynamicOccludee: 1
|
||||
m_StaticShadowCaster: 0
|
||||
m_MotionVectors: 0
|
||||
m_LightProbeUsage: 0
|
||||
m_ReflectionProbeUsage: 0
|
||||
m_RayTracingMode: 0
|
||||
m_RayTraceProcedural: 0
|
||||
m_RayTracingAccelStructBuildFlagsOverride: 0
|
||||
m_RayTracingAccelStructBuildFlags: 1
|
||||
m_SmallMeshCulling: 1
|
||||
m_RenderingLayerMask: 1
|
||||
m_RendererPriority: 0
|
||||
m_Materials:
|
||||
- {fileID: 2100000, guid: bbf6c47920b8378488083e25f9ab31e1, type: 2}
|
||||
m_StaticBatchInfo:
|
||||
firstSubMesh: 0
|
||||
subMeshCount: 0
|
||||
m_StaticBatchRoot: {fileID: 0}
|
||||
m_ProbeAnchor: {fileID: 0}
|
||||
m_LightProbeVolumeOverride: {fileID: 0}
|
||||
m_ScaleInLightmap: 1
|
||||
m_ReceiveGI: 1
|
||||
m_PreserveUVs: 0
|
||||
m_IgnoreNormalsForChartDetection: 0
|
||||
m_ImportantGI: 0
|
||||
m_StitchLightmapSeams: 1
|
||||
m_SelectedEditorRenderState: 3
|
||||
m_MinimumChartSize: 4
|
||||
m_AutoUVMaxDistance: 0.5
|
||||
m_AutoUVMaxAngle: 89
|
||||
m_LightmapParameters: {fileID: 0}
|
||||
m_SortingLayerID: 0
|
||||
m_SortingLayer: 0
|
||||
m_SortingOrder: 0
|
||||
m_Time: 1
|
||||
m_PreviewTimeScale: 1
|
||||
m_Parameters:
|
||||
serializedVersion: 3
|
||||
widthMultiplier: 0.74
|
||||
widthCurve:
|
||||
serializedVersion: 2
|
||||
m_Curve:
|
||||
- serializedVersion: 3
|
||||
time: 0
|
||||
value: 1
|
||||
inSlope: 0
|
||||
outSlope: 0
|
||||
tangentMode: 0
|
||||
weightedMode: 0
|
||||
inWeight: 0.33333334
|
||||
outWeight: 0.33333334
|
||||
- serializedVersion: 3
|
||||
time: 1
|
||||
value: 0
|
||||
inSlope: -3.2915306
|
||||
outSlope: -3.2915306
|
||||
tangentMode: 0
|
||||
weightedMode: 0
|
||||
inWeight: 0.0218094
|
||||
outWeight: 0
|
||||
m_PreInfinity: 2
|
||||
m_PostInfinity: 2
|
||||
m_RotationOrder: 4
|
||||
colorGradient:
|
||||
serializedVersion: 2
|
||||
key0: {r: 1, g: 1, b: 1, a: 1}
|
||||
key1: {r: 1, g: 1, b: 1, a: 1}
|
||||
key2: {r: 0, g: 0, b: 0, a: 0}
|
||||
key3: {r: 0, g: 0, b: 0, a: 0}
|
||||
key4: {r: 0, g: 0, b: 0, a: 0}
|
||||
key5: {r: 0, g: 0, b: 0, a: 0}
|
||||
key6: {r: 0, g: 0, b: 0, a: 0}
|
||||
key7: {r: 0, g: 0, b: 0, a: 0}
|
||||
ctime0: 0
|
||||
ctime1: 65535
|
||||
ctime2: 0
|
||||
ctime3: 0
|
||||
ctime4: 0
|
||||
ctime5: 0
|
||||
ctime6: 0
|
||||
ctime7: 0
|
||||
atime0: 0
|
||||
atime1: 65535
|
||||
atime2: 0
|
||||
atime3: 0
|
||||
atime4: 0
|
||||
atime5: 0
|
||||
atime6: 0
|
||||
atime7: 0
|
||||
m_Mode: 0
|
||||
m_ColorSpace: -1
|
||||
m_NumColorKeys: 2
|
||||
m_NumAlphaKeys: 2
|
||||
numCornerVertices: 6
|
||||
numCapVertices: 0
|
||||
alignment: 1
|
||||
textureMode: 0
|
||||
textureScale: {x: 1, y: 1}
|
||||
shadowBias: 0.5
|
||||
generateLightingData: 0
|
||||
m_MinVertexDistance: 0.1
|
||||
m_MaskInteraction: 0
|
||||
m_Autodestruct: 0
|
||||
m_Emitting: 1
|
||||
m_ApplyActiveColorSpace: 1
|
||||
--- !u!1 &7390605608055178527
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
@@ -34,6 +182,7 @@ Transform:
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children:
|
||||
- {fileID: 8232855175872471746}
|
||||
- {fileID: 2468028753576640433}
|
||||
m_Father: {fileID: 0}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!114 &3623051023707969355
|
||||
@@ -69,8 +218,8 @@ MonoBehaviour:
|
||||
- actor:
|
||||
m_AssetGUID: 50a5e87baaedf5b46ba52646e8e88b74
|
||||
m_SubObjectName:
|
||||
m_SubObjectGUID:
|
||||
m_SubObjectType:
|
||||
m_SubObjectGUID:
|
||||
m_EditorAssetChanged: 0
|
||||
slotName: dagger_left
|
||||
handsAnimationClipsSets:
|
||||
|
||||
@@ -87,6 +87,8 @@ MonoBehaviour:
|
||||
- {fileID: 195185668620797367}
|
||||
- {fileID: 7804274750609309327}
|
||||
- {fileID: 516503892404828442}
|
||||
- {fileID: 9055748677541019715}
|
||||
- {fileID: 7745855554213630296}
|
||||
colliders:
|
||||
- {fileID: 5196034780342043746}
|
||||
bloodStreamParticles: {fileID: 1496971979244116752}
|
||||
@@ -113,6 +115,7 @@ MonoBehaviour:
|
||||
wearables:
|
||||
- {fileID: 4057421942970078161}
|
||||
- {fileID: 9077155126279679235}
|
||||
- {fileID: 1386487405498541073}
|
||||
colliders:
|
||||
- {fileID: 5959361679409008663}
|
||||
- {fileID: 1107962127697433817}
|
||||
@@ -122,10 +125,16 @@ MonoBehaviour:
|
||||
wearables:
|
||||
- {fileID: 2842147911703410086}
|
||||
- {fileID: 3549243330475707168}
|
||||
- {fileID: 3612120341523365289}
|
||||
colliders:
|
||||
- {fileID: 600210410026507738}
|
||||
- {fileID: 6618653062145489106}
|
||||
bloodStreamParticles: {fileID: 1270265462580972260}
|
||||
m_GroundLocomotion: {fileID: 11400000, guid: 39e8c20c7fe505a488e7cdfc3da3b847, type: 2}
|
||||
m_GroundLocomotionPropertyRight: {fileID: 11400000, guid: a078042616c18a14fb11cb422b08df12, type: 2}
|
||||
m_GroundLocomotionPropertyForward: {fileID: 11400000, guid: 7b74808cded386840b654dee92400abd, type: 2}
|
||||
m_AttackClips:
|
||||
- {fileID: -203655887218126122, guid: da6de1de3c6a8fd4089dac405ac26f86, type: 3}
|
||||
died:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
@@ -186,6 +195,10 @@ PrefabInstance:
|
||||
propertyPath: m_Name
|
||||
value: ps_blood_stream
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 2645631219435715753, guid: e4708616b97e6384fbc6a5d749870ef0, type: 3}
|
||||
propertyPath: m_Layer
|
||||
value: 12
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8314467853670120486, guid: e4708616b97e6384fbc6a5d749870ef0, type: 3}
|
||||
propertyPath: m_LocalPosition.x
|
||||
value: 0
|
||||
@@ -450,6 +463,10 @@ PrefabInstance:
|
||||
serializedVersion: 3
|
||||
m_TransformParent: {fileID: 3087783944934017836}
|
||||
m_Modifications:
|
||||
- target: {fileID: -9070493210130169274, guid: d2e957dad22ca1f4fae5e5e9fd8170c3, type: 3}
|
||||
propertyPath: m_Layer
|
||||
value: 12
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: -8679921383154817045, guid: d2e957dad22ca1f4fae5e5e9fd8170c3, type: 3}
|
||||
propertyPath: m_LocalPosition.x
|
||||
value: 0
|
||||
@@ -490,6 +507,10 @@ PrefabInstance:
|
||||
propertyPath: m_LocalEulerAnglesHint.z
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: -8006009767450596044, guid: d2e957dad22ca1f4fae5e5e9fd8170c3, type: 3}
|
||||
propertyPath: m_Layer
|
||||
value: 12
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: -7547733204030175338, guid: d2e957dad22ca1f4fae5e5e9fd8170c3, type: 3}
|
||||
propertyPath: 'm_Materials.Array.data[0]'
|
||||
value:
|
||||
@@ -506,6 +527,10 @@ PrefabInstance:
|
||||
propertyPath: 'm_Materials.Array.data[0]'
|
||||
value:
|
||||
objectReference: {fileID: 2100000, guid: dee771a2fd568e346a44028af6db8c4a, type: 2}
|
||||
- target: {fileID: -6170625038081293824, guid: d2e957dad22ca1f4fae5e5e9fd8170c3, type: 3}
|
||||
propertyPath: m_Layer
|
||||
value: 12
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: -5928052198791885581, guid: d2e957dad22ca1f4fae5e5e9fd8170c3, type: 3}
|
||||
propertyPath: 'm_Materials.Array.data[0]'
|
||||
value:
|
||||
@@ -514,10 +539,50 @@ PrefabInstance:
|
||||
propertyPath: 'm_Materials.Array.data[0]'
|
||||
value:
|
||||
objectReference: {fileID: 2100000, guid: 6f6bf6c40b9130843890124806980318, type: 2}
|
||||
- target: {fileID: -4728426434207774260, guid: d2e957dad22ca1f4fae5e5e9fd8170c3, type: 3}
|
||||
propertyPath: m_Layer
|
||||
value: 12
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: -4332706925441422008, guid: d2e957dad22ca1f4fae5e5e9fd8170c3, type: 3}
|
||||
propertyPath: m_Layer
|
||||
value: 12
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: -4223379080860796823, guid: d2e957dad22ca1f4fae5e5e9fd8170c3, type: 3}
|
||||
propertyPath: 'm_Materials.Array.data[0]'
|
||||
value:
|
||||
objectReference: {fileID: 2100000, guid: 6f6bf6c40b9130843890124806980318, type: 2}
|
||||
- target: {fileID: -3478013746326755454, guid: d2e957dad22ca1f4fae5e5e9fd8170c3, type: 3}
|
||||
propertyPath: m_Layer
|
||||
value: 12
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: -3214267034143217929, guid: d2e957dad22ca1f4fae5e5e9fd8170c3, type: 3}
|
||||
propertyPath: m_Layer
|
||||
value: 12
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: -3086436065929644917, guid: d2e957dad22ca1f4fae5e5e9fd8170c3, type: 3}
|
||||
propertyPath: m_Layer
|
||||
value: 12
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: -1781356600409242780, guid: d2e957dad22ca1f4fae5e5e9fd8170c3, type: 3}
|
||||
propertyPath: m_Layer
|
||||
value: 12
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: -1425791611860619382, guid: d2e957dad22ca1f4fae5e5e9fd8170c3, type: 3}
|
||||
propertyPath: m_Layer
|
||||
value: 12
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: -1268151995469589007, guid: d2e957dad22ca1f4fae5e5e9fd8170c3, type: 3}
|
||||
propertyPath: m_Layer
|
||||
value: 12
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: -552831747908440785, guid: d2e957dad22ca1f4fae5e5e9fd8170c3, type: 3}
|
||||
propertyPath: m_Layer
|
||||
value: 12
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: -290750445479886849, guid: d2e957dad22ca1f4fae5e5e9fd8170c3, type: 3}
|
||||
propertyPath: m_Layer
|
||||
value: 12
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 579163500693744052, guid: d2e957dad22ca1f4fae5e5e9fd8170c3, type: 3}
|
||||
propertyPath: 'm_Materials.Array.data[0]'
|
||||
value:
|
||||
@@ -534,10 +599,18 @@ PrefabInstance:
|
||||
propertyPath: 'm_Materials.Array.data[0]'
|
||||
value:
|
||||
objectReference: {fileID: 2100000, guid: 6f6bf6c40b9130843890124806980318, type: 2}
|
||||
- target: {fileID: 1711505207429034123, guid: d2e957dad22ca1f4fae5e5e9fd8170c3, type: 3}
|
||||
propertyPath: m_Layer
|
||||
value: 12
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 1751384141052031026, guid: d2e957dad22ca1f4fae5e5e9fd8170c3, type: 3}
|
||||
propertyPath: 'm_Materials.Array.data[0]'
|
||||
value:
|
||||
objectReference: {fileID: 2100000, guid: 08e19dab1a066fc4c837941529974811, type: 2}
|
||||
- target: {fileID: 2586065998465600510, guid: d2e957dad22ca1f4fae5e5e9fd8170c3, type: 3}
|
||||
propertyPath: m_Layer
|
||||
value: 12
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 2674498840362988503, guid: d2e957dad22ca1f4fae5e5e9fd8170c3, type: 3}
|
||||
propertyPath: 'm_Materials.Array.data[0]'
|
||||
value:
|
||||
@@ -546,6 +619,26 @@ PrefabInstance:
|
||||
propertyPath: 'm_Materials.Array.data[0]'
|
||||
value:
|
||||
objectReference: {fileID: 2100000, guid: 08e19dab1a066fc4c837941529974811, type: 2}
|
||||
- target: {fileID: 3047284246813455858, guid: d2e957dad22ca1f4fae5e5e9fd8170c3, type: 3}
|
||||
propertyPath: m_Layer
|
||||
value: 12
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 3135921509060577837, guid: d2e957dad22ca1f4fae5e5e9fd8170c3, type: 3}
|
||||
propertyPath: m_Layer
|
||||
value: 12
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 3948933247560734027, guid: d2e957dad22ca1f4fae5e5e9fd8170c3, type: 3}
|
||||
propertyPath: m_Layer
|
||||
value: 12
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 4114030615378554161, guid: d2e957dad22ca1f4fae5e5e9fd8170c3, type: 3}
|
||||
propertyPath: m_Layer
|
||||
value: 12
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 4549111882529890269, guid: d2e957dad22ca1f4fae5e5e9fd8170c3, type: 3}
|
||||
propertyPath: m_Layer
|
||||
value: 12
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 4691356734749045086, guid: d2e957dad22ca1f4fae5e5e9fd8170c3, type: 3}
|
||||
propertyPath: 'm_Materials.Array.data[0]'
|
||||
value:
|
||||
@@ -554,6 +647,10 @@ PrefabInstance:
|
||||
propertyPath: 'm_Materials.Array.data[0]'
|
||||
value:
|
||||
objectReference: {fileID: 2100000, guid: bd4a273039eeb24478a41c1ca3342080, type: 2}
|
||||
- target: {fileID: 6514210125699187276, guid: d2e957dad22ca1f4fae5e5e9fd8170c3, type: 3}
|
||||
propertyPath: m_Layer
|
||||
value: 12
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 6548349598244766560, guid: d2e957dad22ca1f4fae5e5e9fd8170c3, type: 3}
|
||||
propertyPath: 'm_Materials.Array.data[0]'
|
||||
value:
|
||||
@@ -562,6 +659,14 @@ PrefabInstance:
|
||||
propertyPath: 'm_Materials.Array.data[0]'
|
||||
value:
|
||||
objectReference: {fileID: 2100000, guid: dee771a2fd568e346a44028af6db8c4a, type: 2}
|
||||
- target: {fileID: 7363479242261063072, guid: d2e957dad22ca1f4fae5e5e9fd8170c3, type: 3}
|
||||
propertyPath: m_Layer
|
||||
value: 12
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 7776229726456038893, guid: d2e957dad22ca1f4fae5e5e9fd8170c3, type: 3}
|
||||
propertyPath: m_Layer
|
||||
value: 12
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 7833282959318594594, guid: d2e957dad22ca1f4fae5e5e9fd8170c3, type: 3}
|
||||
propertyPath: 'm_Materials.Array.data[0]'
|
||||
value:
|
||||
@@ -578,6 +683,14 @@ PrefabInstance:
|
||||
propertyPath: 'm_Materials.Array.data[0]'
|
||||
value:
|
||||
objectReference: {fileID: 2100000, guid: bd4a273039eeb24478a41c1ca3342080, type: 2}
|
||||
- target: {fileID: 8817898888258712963, guid: d2e957dad22ca1f4fae5e5e9fd8170c3, type: 3}
|
||||
propertyPath: m_Layer
|
||||
value: 12
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 9037727976738196030, guid: d2e957dad22ca1f4fae5e5e9fd8170c3, type: 3}
|
||||
propertyPath: m_Layer
|
||||
value: 12
|
||||
objectReference: {fileID: 0}
|
||||
m_RemovedComponents: []
|
||||
m_RemovedGameObjects: []
|
||||
m_AddedGameObjects:
|
||||
@@ -618,6 +731,9 @@ PrefabInstance:
|
||||
- targetCorrespondingSourceObject: {fileID: 3135921509060577837, guid: d2e957dad22ca1f4fae5e5e9fd8170c3, type: 3}
|
||||
insertIndex: -1
|
||||
addedObject: {fileID: 9114647905794880330}
|
||||
- targetCorrespondingSourceObject: {fileID: 3135921509060577837, guid: d2e957dad22ca1f4fae5e5e9fd8170c3, type: 3}
|
||||
insertIndex: -1
|
||||
addedObject: {fileID: 8889524053042602330}
|
||||
- targetCorrespondingSourceObject: {fileID: -6170625038081293824, guid: d2e957dad22ca1f4fae5e5e9fd8170c3, type: 3}
|
||||
insertIndex: -1
|
||||
addedObject: {fileID: 1107962127697433817}
|
||||
@@ -627,6 +743,9 @@ PrefabInstance:
|
||||
- targetCorrespondingSourceObject: {fileID: -6170625038081293824, guid: d2e957dad22ca1f4fae5e5e9fd8170c3, type: 3}
|
||||
insertIndex: -1
|
||||
addedObject: {fileID: 1540632195369085368}
|
||||
- targetCorrespondingSourceObject: {fileID: -6170625038081293824, guid: d2e957dad22ca1f4fae5e5e9fd8170c3, type: 3}
|
||||
insertIndex: -1
|
||||
addedObject: {fileID: 8696581383255721117}
|
||||
- targetCorrespondingSourceObject: {fileID: -3086436065929644917, guid: d2e957dad22ca1f4fae5e5e9fd8170c3, type: 3}
|
||||
insertIndex: -1
|
||||
addedObject: {fileID: 600210410026507738}
|
||||
@@ -636,6 +755,9 @@ PrefabInstance:
|
||||
- targetCorrespondingSourceObject: {fileID: -3086436065929644917, guid: d2e957dad22ca1f4fae5e5e9fd8170c3, type: 3}
|
||||
insertIndex: -1
|
||||
addedObject: {fileID: 726057557378094293}
|
||||
- targetCorrespondingSourceObject: {fileID: -3086436065929644917, guid: d2e957dad22ca1f4fae5e5e9fd8170c3, type: 3}
|
||||
insertIndex: -1
|
||||
addedObject: {fileID: 711757849574573574}
|
||||
- targetCorrespondingSourceObject: {fileID: -4332706925441422008, guid: d2e957dad22ca1f4fae5e5e9fd8170c3, type: 3}
|
||||
insertIndex: -1
|
||||
addedObject: {fileID: 6618653062145489106}
|
||||
@@ -645,6 +767,9 @@ PrefabInstance:
|
||||
- targetCorrespondingSourceObject: {fileID: -4332706925441422008, guid: d2e957dad22ca1f4fae5e5e9fd8170c3, type: 3}
|
||||
insertIndex: -1
|
||||
addedObject: {fileID: 8617324969592010863}
|
||||
- targetCorrespondingSourceObject: {fileID: -4332706925441422008, guid: d2e957dad22ca1f4fae5e5e9fd8170c3, type: 3}
|
||||
insertIndex: -1
|
||||
addedObject: {fileID: 1929018140768363926}
|
||||
- targetCorrespondingSourceObject: {fileID: -203856693384778745, guid: d2e957dad22ca1f4fae5e5e9fd8170c3, type: 3}
|
||||
insertIndex: -1
|
||||
addedObject: {fileID: 1413923487375971647}
|
||||
@@ -666,6 +791,9 @@ PrefabInstance:
|
||||
- targetCorrespondingSourceObject: {fileID: 8817898888258712963, guid: d2e957dad22ca1f4fae5e5e9fd8170c3, type: 3}
|
||||
insertIndex: -1
|
||||
addedObject: {fileID: 7650472635330070799}
|
||||
- targetCorrespondingSourceObject: {fileID: 8817898888258712963, guid: d2e957dad22ca1f4fae5e5e9fd8170c3, type: 3}
|
||||
insertIndex: -1
|
||||
addedObject: {fileID: 8763777495105657203}
|
||||
- targetCorrespondingSourceObject: {fileID: 3948933247560734027, guid: d2e957dad22ca1f4fae5e5e9fd8170c3, type: 3}
|
||||
insertIndex: -1
|
||||
addedObject: {fileID: 8675953056952567188}
|
||||
@@ -675,6 +803,9 @@ PrefabInstance:
|
||||
- targetCorrespondingSourceObject: {fileID: 3948933247560734027, guid: d2e957dad22ca1f4fae5e5e9fd8170c3, type: 3}
|
||||
insertIndex: -1
|
||||
addedObject: {fileID: 2005653223311132657}
|
||||
- targetCorrespondingSourceObject: {fileID: 3948933247560734027, guid: d2e957dad22ca1f4fae5e5e9fd8170c3, type: 3}
|
||||
insertIndex: -1
|
||||
addedObject: {fileID: 3208180709493702790}
|
||||
- targetCorrespondingSourceObject: {fileID: -1781356600409242780, guid: d2e957dad22ca1f4fae5e5e9fd8170c3, type: 3}
|
||||
insertIndex: -1
|
||||
addedObject: {fileID: 5196034780342043746}
|
||||
@@ -696,6 +827,9 @@ PrefabInstance:
|
||||
- targetCorrespondingSourceObject: {fileID: -9070493210130169274, guid: d2e957dad22ca1f4fae5e5e9fd8170c3, type: 3}
|
||||
insertIndex: -1
|
||||
addedObject: {fileID: 1647824546989841962}
|
||||
- targetCorrespondingSourceObject: {fileID: -9070493210130169274, guid: d2e957dad22ca1f4fae5e5e9fd8170c3, type: 3}
|
||||
insertIndex: -1
|
||||
addedObject: {fileID: 7123774486743823049}
|
||||
- targetCorrespondingSourceObject: {fileID: -290750445479886849, guid: d2e957dad22ca1f4fae5e5e9fd8170c3, type: 3}
|
||||
insertIndex: -1
|
||||
addedObject: {fileID: 4929436638533926073}
|
||||
@@ -705,6 +839,9 @@ PrefabInstance:
|
||||
- targetCorrespondingSourceObject: {fileID: -290750445479886849, guid: d2e957dad22ca1f4fae5e5e9fd8170c3, type: 3}
|
||||
insertIndex: -1
|
||||
addedObject: {fileID: 1847148280696077802}
|
||||
- targetCorrespondingSourceObject: {fileID: -290750445479886849, guid: d2e957dad22ca1f4fae5e5e9fd8170c3, type: 3}
|
||||
insertIndex: -1
|
||||
addedObject: {fileID: 7150118618737326427}
|
||||
m_SourcePrefab: {fileID: 100100000, guid: d2e957dad22ca1f4fae5e5e9fd8170c3, type: 3}
|
||||
--- !u!4 &195185668620797367 stripped
|
||||
Transform:
|
||||
@@ -812,6 +949,20 @@ CharacterJoint:
|
||||
m_EnablePreprocessing: 0
|
||||
m_MassScale: 1
|
||||
m_ConnectedMassScale: 1
|
||||
--- !u!114 &1929018140768363926
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 318341321164162482}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 37d2b8f1679f41288194769e98584e0e, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
owner: {fileID: 8352071028351746831}
|
||||
m_BodyPart: 5
|
||||
--- !u!4 &387768722951651117 stripped
|
||||
Transform:
|
||||
m_CorrespondingSourceObject: {fileID: -4407763831008536617, guid: d2e957dad22ca1f4fae5e5e9fd8170c3, type: 3}
|
||||
@@ -923,6 +1074,25 @@ CharacterJoint:
|
||||
m_EnablePreprocessing: 0
|
||||
m_MassScale: 1
|
||||
m_ConnectedMassScale: 1
|
||||
--- !u!114 &711757849574573574
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1341823646622997617}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 37d2b8f1679f41288194769e98584e0e, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
owner: {fileID: 8352071028351746831}
|
||||
m_BodyPart: 5
|
||||
--- !u!4 &1386487405498541073 stripped
|
||||
Transform:
|
||||
m_CorrespondingSourceObject: {fileID: 6091137516116298987, guid: d2e957dad22ca1f4fae5e5e9fd8170c3, type: 3}
|
||||
m_PrefabInstance: {fileID: 5167277762949540090}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
--- !u!4 &1508813012558952447 stripped
|
||||
Transform:
|
||||
m_CorrespondingSourceObject: {fileID: 6000407479487422213, guid: d2e957dad22ca1f4fae5e5e9fd8170c3, type: 3}
|
||||
@@ -1086,6 +1256,11 @@ Transform:
|
||||
m_CorrespondingSourceObject: {fileID: 8571662625946739674, guid: d2e957dad22ca1f4fae5e5e9fd8170c3, type: 3}
|
||||
m_PrefabInstance: {fileID: 5167277762949540090}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
--- !u!4 &3612120341523365289 stripped
|
||||
Transform:
|
||||
m_CorrespondingSourceObject: {fileID: -750676241868679853, guid: d2e957dad22ca1f4fae5e5e9fd8170c3, type: 3}
|
||||
m_PrefabInstance: {fileID: 5167277762949540090}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
--- !u!4 &3810518212273745183 stripped
|
||||
Transform:
|
||||
m_CorrespondingSourceObject: {fileID: -912975496661547547, guid: d2e957dad22ca1f4fae5e5e9fd8170c3, type: 3}
|
||||
@@ -1315,6 +1490,20 @@ CharacterJoint:
|
||||
m_EnablePreprocessing: 0
|
||||
m_MassScale: 1
|
||||
m_ConnectedMassScale: 1
|
||||
--- !u!114 &7150118618737326427
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 4342270201220536069}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 37d2b8f1679f41288194769e98584e0e, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
owner: {fileID: 8352071028351746831}
|
||||
m_BodyPart: 3
|
||||
--- !u!1 &4461558626407488889 stripped
|
||||
GameObject:
|
||||
m_CorrespondingSourceObject: {fileID: 8817898888258712963, guid: d2e957dad22ca1f4fae5e5e9fd8170c3, type: 3}
|
||||
@@ -1416,6 +1605,20 @@ CharacterJoint:
|
||||
m_EnablePreprocessing: 0
|
||||
m_MassScale: 1
|
||||
m_ConnectedMassScale: 1
|
||||
--- !u!114 &8763777495105657203
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 4461558626407488889}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 37d2b8f1679f41288194769e98584e0e, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
owner: {fileID: 8352071028351746831}
|
||||
m_BodyPart: 2
|
||||
--- !u!4 &4629527527371345681 stripped
|
||||
Transform:
|
||||
m_CorrespondingSourceObject: {fileID: -8679921383154817045, guid: d2e957dad22ca1f4fae5e5e9fd8170c3, type: 3}
|
||||
@@ -1527,6 +1730,20 @@ CharacterJoint:
|
||||
m_EnablePreprocessing: 0
|
||||
m_MassScale: 1
|
||||
m_ConnectedMassScale: 1
|
||||
--- !u!114 &7123774486743823049
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 5020099358574029500}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 37d2b8f1679f41288194769e98584e0e, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
owner: {fileID: 8352071028351746831}
|
||||
m_BodyPart: 3
|
||||
--- !u!1 &5237927313291425520 stripped
|
||||
GameObject:
|
||||
m_CorrespondingSourceObject: {fileID: 1082271958561512970, guid: d2e957dad22ca1f4fae5e5e9fd8170c3, type: 3}
|
||||
@@ -1637,6 +1854,11 @@ Transform:
|
||||
m_CorrespondingSourceObject: {fileID: 2559285840627121667, guid: d2e957dad22ca1f4fae5e5e9fd8170c3, type: 3}
|
||||
m_PrefabInstance: {fileID: 5167277762949540090}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
--- !u!4 &7745855554213630296 stripped
|
||||
Transform:
|
||||
m_CorrespondingSourceObject: {fileID: -5995675212371052126, guid: d2e957dad22ca1f4fae5e5e9fd8170c3, type: 3}
|
||||
m_PrefabInstance: {fileID: 5167277762949540090}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
--- !u!1 &7795973122874794711 stripped
|
||||
GameObject:
|
||||
m_CorrespondingSourceObject: {fileID: 3135921509060577837, guid: d2e957dad22ca1f4fae5e5e9fd8170c3, type: 3}
|
||||
@@ -1738,6 +1960,20 @@ CharacterJoint:
|
||||
m_EnablePreprocessing: 0
|
||||
m_MassScale: 1
|
||||
m_ConnectedMassScale: 1
|
||||
--- !u!114 &8889524053042602330
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 7795973122874794711}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 37d2b8f1679f41288194769e98584e0e, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
owner: {fileID: 8352071028351746831}
|
||||
m_BodyPart: 4
|
||||
--- !u!4 &7804274750609309327 stripped
|
||||
Transform:
|
||||
m_CorrespondingSourceObject: {fileID: 3169268832049026677, guid: d2e957dad22ca1f4fae5e5e9fd8170c3, type: 3}
|
||||
@@ -1844,6 +2080,20 @@ CharacterJoint:
|
||||
m_EnablePreprocessing: 0
|
||||
m_MassScale: 1
|
||||
m_ConnectedMassScale: 1
|
||||
--- !u!114 &8696581383255721117
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 7919670688253307642}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 37d2b8f1679f41288194769e98584e0e, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
owner: {fileID: 8352071028351746831}
|
||||
m_BodyPart: 4
|
||||
--- !u!1 &8176485658650983857 stripped
|
||||
GameObject:
|
||||
m_CorrespondingSourceObject: {fileID: 3948933247560734027, guid: d2e957dad22ca1f4fae5e5e9fd8170c3, type: 3}
|
||||
@@ -1945,11 +2195,30 @@ CharacterJoint:
|
||||
m_EnablePreprocessing: 0
|
||||
m_MassScale: 1
|
||||
m_ConnectedMassScale: 1
|
||||
--- !u!114 &3208180709493702790
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 8176485658650983857}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 37d2b8f1679f41288194769e98584e0e, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
owner: {fileID: 8352071028351746831}
|
||||
m_BodyPart: 2
|
||||
--- !u!4 &8811467099555359601 stripped
|
||||
Transform:
|
||||
m_CorrespondingSourceObject: {fileID: -4756569648371596405, guid: d2e957dad22ca1f4fae5e5e9fd8170c3, type: 3}
|
||||
m_PrefabInstance: {fileID: 5167277762949540090}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
--- !u!4 &9055748677541019715 stripped
|
||||
Transform:
|
||||
m_CorrespondingSourceObject: {fileID: 4186554135785121977, guid: d2e957dad22ca1f4fae5e5e9fd8170c3, type: 3}
|
||||
m_PrefabInstance: {fileID: 5167277762949540090}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
--- !u!4 &9077155126279679235 stripped
|
||||
Transform:
|
||||
m_CorrespondingSourceObject: {fileID: -5022265917205789191, guid: d2e957dad22ca1f4fae5e5e9fd8170c3, type: 3}
|
||||
|
||||
@@ -0,0 +1,15 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!114 &11400000
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
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: 4d26ada6b8b155b4cbf61e26d6fc9a06, type: 3}
|
||||
m_Name: param_zombie_ground_locomotion_forward
|
||||
m_EditorClassIdentifier:
|
||||
_EditorComment:
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 7b74808cded386840b654dee92400abd
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,15 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!114 &11400000
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
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: 4d26ada6b8b155b4cbf61e26d6fc9a06, type: 3}
|
||||
m_Name: param_zombie_ground_locomotion_right
|
||||
m_EditorClassIdentifier:
|
||||
_EditorComment:
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: a078042616c18a14fb11cb422b08df12
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,46 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!114 &11400000
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
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: c5a8877f26e7a6a43aaf06fade1a064a, type: 3}
|
||||
m_Name: zombie_ground_locomotion
|
||||
m_EditorClassIdentifier:
|
||||
_Transition:
|
||||
rid: 2723988711188463719
|
||||
references:
|
||||
version: 2
|
||||
RefIds:
|
||||
- rid: 2723988711188463719
|
||||
type: {class: MixerTransition2D, ns: Animancer, asm: Kybernetik.Animancer}
|
||||
data:
|
||||
_FadeDuration: 0.25
|
||||
_Speed: 1
|
||||
_Events:
|
||||
_NormalizedTimes: []
|
||||
_Callbacks: []
|
||||
_Names: []
|
||||
_Animations:
|
||||
- {fileID: -203655887218126122, guid: 7cb1b14715c58f44eb90c93bdd4a6505, type: 3}
|
||||
- {fileID: -203655887218126122, guid: cc1877bf70cb4ca4da39d89d9a461c34, type: 3}
|
||||
- {fileID: -203655887218126122, guid: cc1877bf70cb4ca4da39d89d9a461c34, type: 3}
|
||||
- {fileID: -203655887218126122, guid: cc1877bf70cb4ca4da39d89d9a461c34, type: 3}
|
||||
- {fileID: -203655887218126122, guid: cc1877bf70cb4ca4da39d89d9a461c34, type: 3}
|
||||
_Speeds: []
|
||||
_SynchronizeChildren:
|
||||
_Thresholds:
|
||||
- {x: 0, y: 0}
|
||||
- {x: 0, y: 1}
|
||||
- {x: 0, y: -1}
|
||||
- {x: 1, y: 0}
|
||||
- {x: -1, y: 0}
|
||||
_DefaultParameter: {x: 0, y: 0}
|
||||
_Type: 0
|
||||
_ParameterNameX: {fileID: 11400000, guid: a078042616c18a14fb11cb422b08df12, type: 2}
|
||||
_ParameterNameY: {fileID: 11400000, guid: 7b74808cded386840b654dee92400abd, type: 2}
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 39e8c20c7fe505a488e7cdfc3da3b847
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
157
Assets/jelycho/core/materials/m_weapon_trail.mat
Normal file
157
Assets/jelycho/core/materials/m_weapon_trail.mat
Normal file
@@ -0,0 +1,157 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!114 &-3534035237265524349
|
||||
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: 10
|
||||
--- !u!21 &2100000
|
||||
Material:
|
||||
serializedVersion: 8
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: m_weapon_trail
|
||||
m_Shader: {fileID: 4800000, guid: 8516d7a69675844a7a0b7095af7c46af, type: 3}
|
||||
m_Parent: {fileID: 0}
|
||||
m_ModifiedSerializedProperties: 0
|
||||
m_ValidKeywords: []
|
||||
m_InvalidKeywords:
|
||||
- _FLIPBOOKBLENDING_OFF
|
||||
m_LightmapFlags: 0
|
||||
m_EnableInstancingVariants: 0
|
||||
m_DoubleSidedGI: 0
|
||||
m_CustomRenderQueue: -1
|
||||
stringTagMap:
|
||||
RenderType: Opaque
|
||||
disabledShaderPasses: []
|
||||
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
|
||||
- _BlendOp: 0
|
||||
- _BumpScale: 1
|
||||
- _CameraFadingEnabled: 0
|
||||
- _CameraFarFadeDistance: 2
|
||||
- _CameraNearFadeDistance: 1
|
||||
- _ClearCoatMask: 0
|
||||
- _ClearCoatSmoothness: 0
|
||||
- _ColorMode: 0
|
||||
- _Cull: 2
|
||||
- _Cutoff: 0.5
|
||||
- _DetailAlbedoMapScale: 1
|
||||
- _DetailNormalMapScale: 1
|
||||
- _DistortionBlend: 0.5
|
||||
- _DistortionEnabled: 0
|
||||
- _DistortionStrength: 1
|
||||
- _DistortionStrengthScaled: 0
|
||||
- _DstBlend: 0
|
||||
- _DstBlendAlpha: 0
|
||||
- _EmissionEnabled: 0
|
||||
- _EnvironmentReflections: 1
|
||||
- _FlipbookBlending: 0
|
||||
- _FlipbookMode: 0
|
||||
- _GlossMapScale: 0
|
||||
- _Glossiness: 0
|
||||
- _GlossyReflections: 0
|
||||
- _LightingEnabled: 1
|
||||
- _Metallic: 0
|
||||
- _Mode: 0
|
||||
- _OcclusionStrength: 1
|
||||
- _Parallax: 0.005
|
||||
- _QueueOffset: 0
|
||||
- _ReceiveShadows: 1
|
||||
- _Smoothness: 0.5
|
||||
- _SmoothnessSource: 0
|
||||
- _SmoothnessTextureChannel: 0
|
||||
- _SoftParticlesEnabled: 0
|
||||
- _SoftParticlesFarFadeDistance: 1
|
||||
- _SoftParticlesNearFadeDistance: 0
|
||||
- _SpecularHighlights: 1
|
||||
- _SrcBlend: 1
|
||||
- _SrcBlendAlpha: 1
|
||||
- _Surface: 0
|
||||
- _WorkflowMode: 1
|
||||
- _ZWrite: 1
|
||||
m_Colors:
|
||||
- _BaseColor: {r: 1, g: 1, b: 1, a: 1}
|
||||
- _BaseColorAddSubDiff: {r: 0, g: 0, b: 0, a: 0}
|
||||
- _CameraFadeParams: {r: 0, g: Infinity, b: 0, a: 0}
|
||||
- _Color: {r: 1, g: 1, b: 1, a: 1}
|
||||
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
|
||||
- _SoftParticleFadeParams: {r: 0, g: 0, b: 0, a: 0}
|
||||
- _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1}
|
||||
m_BuildTextureStacks: []
|
||||
m_AllowLocking: 1
|
||||
@@ -1,7 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 853091bba666d1541bcf46287f5d8b0a
|
||||
DefaultImporter:
|
||||
guid: bbf6c47920b8378488083e25f9ab31e1
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 2100000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -1024,7 +1024,7 @@ MonoBehaviour:
|
||||
FieldOfView: 70
|
||||
OrthographicSize: 5
|
||||
NearClipPlane: 0.12
|
||||
FarClipPlane: 500
|
||||
FarClipPlane: 1000
|
||||
Dutch: 0
|
||||
ModeOverride: 0
|
||||
PhysicalProperties:
|
||||
@@ -1185,7 +1185,7 @@ AudioSource:
|
||||
m_Enabled: 1
|
||||
serializedVersion: 4
|
||||
OutputAudioMixerGroup: {fileID: -7246246608557242452, guid: 95a6b2fae6891e9428abd9f1d02ef54d, type: 2}
|
||||
m_audioClip: {fileID: 8300000, guid: 5716155335402be4393584059b4ff19d, type: 3}
|
||||
m_audioClip: {fileID: 0}
|
||||
m_Resource: {fileID: 8300000, guid: 5716155335402be4393584059b4ff19d, type: 3}
|
||||
m_PlayOnAwake: 0
|
||||
m_Volume: 1
|
||||
|
||||
@@ -10,7 +10,7 @@ MonoBehaviour:
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: c5a8877f26e7a6a43aaf06fade1a064a, type: 3}
|
||||
m_Name: param_ground_locomotion
|
||||
m_Name: ground_locomotion
|
||||
m_EditorClassIdentifier:
|
||||
_Transition:
|
||||
rid: 2723988420483612950
|
||||
@@ -89,7 +89,7 @@
|
||||
{
|
||||
"type": "System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089",
|
||||
"key": "ShapeBuilder.ActiveShapeIndex",
|
||||
"value": "{\"m_Value\":1}"
|
||||
"value": "{\"m_Value\":6}"
|
||||
},
|
||||
{
|
||||
"type": "UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
|
||||
@@ -99,7 +99,7 @@
|
||||
{
|
||||
"type": "UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
|
||||
"key": "ShapeBuilder.LastSize.Plane",
|
||||
"value": "{\"m_Value\":{\"x\":384.8273010253906,\"y\":0.0,\"z\":-189.3860626220703}}"
|
||||
"value": "{\"m_Value\":{\"x\":-70.788330078125,\"y\":0.0,\"z\":35.4305419921875}}"
|
||||
},
|
||||
{
|
||||
"type": "UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
|
||||
|
||||
Reference in New Issue
Block a user