Files
Robii Aragon fd87a6ffd5 add ckg
plantilla base para movimiento básico
2026-02-05 05:07:55 -08:00

164 lines
3.4 KiB
C#

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class meleeShieldObjectSystem : MonoBehaviour
{
[Header ("Main Settings")]
[Space]
public float blockDamageProtectionAmount = 1;
public float reducedBlockDamageProtectionAmount = 0.1f;
public bool useMaxBlockRangeAngle = true;
public float maxBlockRangeAngle = 180;
[Space]
public bool shieldCarriedOnRightArm;
public bool hideWeaponMeshWhenNotUsed;
[Space]
[Header ("Durability Settings")]
[Space]
public bool useObjectDurabilityOnBlock;
public float durabilityUsedOnBlock = 1;
[Space]
[Header ("Debug")]
[Space]
public GameObject currentCharacter;
[Space]
[Header ("Components")]
[Space]
public durabilityInfo mainDurabilityInfo;
public void setCurrentCharacter (GameObject newObject)
{
currentCharacter = newObject;
}
public GameObject getCurrentCharacter ()
{
return currentCharacter;
}
public bool checkDurabilityOnBlockWithShield (float extraMultiplier)
{
if (useObjectDurabilityOnBlock) {
mainDurabilityInfo.addOrRemoveDurabilityAmountToObjectByName (-durabilityUsedOnBlock * extraMultiplier, false);
if (mainDurabilityInfo.durabilityAmount <= 0) {
return true;
}
}
return false;
}
public void updateDurabilityAmountState ()
{
if (useObjectDurabilityOnBlock) {
mainDurabilityInfo.updateDurabilityAmountState ();
}
}
public float getDurabilityAmount ()
{
if (useObjectDurabilityOnBlock) {
return mainDurabilityInfo.getDurabilityAmount ();
}
return -1;
}
public void initializeDurabilityValue (float newAmount, int currentObjectIndex)
{
if (useObjectDurabilityOnBlock) {
mainDurabilityInfo.initializeDurabilityValue (newAmount);
mainDurabilityInfo.setInventoryObjectIndex (currentObjectIndex);
}
}
public void setInventoryObjectIndex (int currentObjectIndex)
{
if (useObjectDurabilityOnBlock) {
mainDurabilityInfo.setInventoryObjectIndex (currentObjectIndex);
}
}
public void repairObjectFully ()
{
if (useObjectDurabilityOnBlock) {
mainDurabilityInfo.repairObjectFully ();
}
}
public void breakFullDurabilityOnCurrentWeapon ()
{
if (useObjectDurabilityOnBlock) {
mainDurabilityInfo.breakFullDurability ();
}
}
public void setUseObjectDurabilityOnBlockValue (bool newValue)
{
useObjectDurabilityOnBlock = newValue;
}
public void setDurabilityUsedOnBlockValue (float newValue)
{
durabilityUsedOnBlock = newValue;
}
public void setUseObjectDurabilityOnBlockValueFromEditor (bool newValue)
{
setUseObjectDurabilityOnBlockValue (newValue);
updateComponent ();
}
public void setDurabilityUsedOnBlockValueFromEditor (float newValue)
{
setDurabilityUsedOnBlockValue (newValue);
updateComponent ();
}
public void setObjectNameFromEditor (string newName)
{
if (useObjectDurabilityOnBlock) {
mainDurabilityInfo.setObjectNameFromEditor (newName);
}
}
public void setDurabilityAmountFromEditor (float newValue)
{
if (useObjectDurabilityOnBlock) {
mainDurabilityInfo.setDurabilityAmountFromEditor (newValue);
}
}
public void setMaxDurabilityAmountFromEditor (float newValue)
{
if (useObjectDurabilityOnBlock) {
mainDurabilityInfo.setMaxDurabilityAmountFromEditor (newValue);
}
}
void updateComponent ()
{
GKC_Utils.updateComponent (this);
GKC_Utils.updateDirtyScene ("Updating melee shield object info" + gameObject.name, gameObject);
}
}