2024-02-19 21:00:36 +03:00

55 lines
1.2 KiB
C#

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using Mirror;
using StarterAssets;
public class EnergyCell : NetworkBehaviour
{
public float EnergyContains = 25f;
public bool isStatic = false;
private float a;
void OnTriggerEnter(Collider collider)
{
if (!isServer) return;
if (collider.tag == "Player")
{
RpcRegenerateEnery(collider.gameObject);
RegenerateEnergy(collider.gameObject);
NetworkServer.Destroy(this.gameObject);
}
}
[Command(requiresAuthority = false)]
void CmdRegenerateEnery(GameObject target)
{
RpcRegenerateEnery(gameObject);
}
[ClientRpc]
void RpcRegenerateEnery(GameObject target)
{
RegenerateEnergy(target);
}
void RegenerateEnergy(GameObject target)
{
PersonController player = target.GetComponent<PersonController>();
player.InstantStaminaRegeneration(EnergyContains);
}
void FixedUpdate()
{
if (!isStatic)
{
a += Time.fixedDeltaTime;
transform.localPosition += new Vector3(0, Mathf.Sin(a) * 0.008f, 0);
}
}
}