73 lines
2.6 KiB
C#
73 lines
2.6 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using Continentis.MainGame;
|
|
using Continentis.MainGame.Card;
|
|
using Continentis.MainGame.Character;
|
|
using Sirenix.OdinInspector;
|
|
using UnityEngine;
|
|
|
|
namespace Continentis.MainGame.Equipment
|
|
{
|
|
public abstract partial class EquipmentBase
|
|
{
|
|
[Title("Equipment Data")]
|
|
public EquipmentData equipmentData;
|
|
|
|
|
|
[Title("References")]
|
|
public CharacterBase character;
|
|
|
|
[Title("Base Info")]
|
|
public Guid equipmentID;
|
|
public List<string> tags;
|
|
|
|
[Title("Submodules")]
|
|
public AttributeSubmodule coreAttributeSubmodule;
|
|
public AttributeSubmodule generalAttributeSubmodule;
|
|
public EventSubmodule eventSubmodule;
|
|
public ContentSubmodule contentSubmodule;
|
|
|
|
public void SetUp(CharacterBase character)
|
|
{
|
|
this.equipmentID = Guid.NewGuid();
|
|
|
|
this.tags = new List<string>(equipmentData.tags);
|
|
coreAttributeSubmodule = new AttributeSubmodule(this, equipmentData.coreNumericChange,
|
|
equipmentData.corePercentageChangeOfAccumulation, equipmentData.corePercentageChangeOfMultiplication);
|
|
generalAttributeSubmodule = new AttributeSubmodule(this, equipmentData.generalNumericChange,
|
|
equipmentData.generalPercentageChangeOfAccumulation, equipmentData.generalPercentageChangeOfMultiplication);
|
|
eventSubmodule = new EventSubmodule(this);
|
|
contentSubmodule = new ContentSubmodule(this);
|
|
|
|
if (character != null)
|
|
{
|
|
this.character = character;
|
|
this.character.equipmentSubmodule.currentEquipments.Add(this); //TODO: 后续换成装备函数
|
|
|
|
List<string> coreNames = coreAttributeSubmodule.GetModifiedAttributeNames();
|
|
|
|
if (coreNames.Count > 0)
|
|
{
|
|
coreAttributeSubmodule.GetModifiedAttributeNames().ForEach(attributeName =>
|
|
{
|
|
this.character.attributeSubmodule.RefreshCoreAttribute(attributeName);
|
|
});
|
|
|
|
this.character.attributeSubmodule.RefreshAllGeneralAttributes();
|
|
}
|
|
else
|
|
{
|
|
generalAttributeSubmodule.GetModifiedAttributeNames().ForEach(attributeName =>
|
|
{
|
|
this.character.attributeSubmodule.RefreshGeneralAttribute(attributeName);
|
|
});
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
public partial class EquipmentBase
|
|
{
|
|
|
|
}
|
|
} |