164 lines
3.4 KiB
C#
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);
|
|||
|
|
}
|
|||
|
|
}
|