-
Notifications
You must be signed in to change notification settings - Fork 2
explain Accessory
Yoo Hyeokjin edited this page Jun 28, 2023
·
1 revision
public int AccessoryIndex; // Accessory의 고유한 Index 번호
public int AccessoryLevel; // Accessory의 현재 Level
public int AccessoryMaxLevel; // Accessory의 Max Level
public Accessory(int accessoryIndex)
{
AccessoryIndex = accessoryIndex; // Accessory를 저장한다.
AccessoryLevel = 0; // Accessory의 현재 level을 1로 설정한다.
AccessoryMaxLevel = EquipmentData.AccessoriesMaxLevel[accessoryIndex]; // Accessory의 Max Level을 EquipmentData에서 가져와 저장한다.
}
public bool IsMaster()
{ // Accessory이 Max Level에 도달하였을 때 true를 반환, 아니면 false를 반환한다.
return AccessoryLevel == AccessoryMaxLevel;
}
public void Upgrade() // Upgrade를 한다.
{
AccessoryLevel++; // Accessory의 Level을 올린다.
foreach ((var statIndex, var data) in EquipmentData.AccessoryUpgrade[AccessoryIndex][AccessoryLevel])
{
GameManager.instance.CharacterStats[statIndex] += data; // Accessory의 Stat을 올린다.
}
Evolution(); // 진화 Method
}
private void Evolution()
{
if (AccessoryLevel != 1) // 해당 악세서리를 처음 획득했을 때만 진입
return;
var equipManageSys = GameManager.instance.EquipManageSys;
int evoPairWeaponIndex = EquipmentData.EvoAccNeedWeaponIndex[AccessoryIndex];
if (equipManageSys.HasWeapon(evoPairWeaponIndex))
{
var pairWeapon = equipManageSys.Weapons[equipManageSys.TransWeaponIndex[evoPairWeaponIndex]];
if(pairWeapon.IsMaster()) // Accessory의 짝이 되는 Weapon이 진화 조건을 만족한다면
{
pairWeapon.BEvolution = true;
pairWeapon.EvolutionProcess(); // 진화를 진행한다.
}
}
}
using System;
public class Accessory
{
public int AccessoryIndex;
public int AccessoryLevel;
public int AccessoryMaxLevel;
public Accessory(int accessoryIndex)
{
AccessoryIndex = accessoryIndex;
AccessoryLevel = 0;
AccessoryMaxLevel = EquipmentData.AccessoriesMaxLevel[accessoryIndex];
}
public bool IsMaster()
{
return AccessoryLevel == AccessoryMaxLevel;
}
public void Upgrade()
{
AccessoryLevel++;
foreach ((var statIndex, var data) in EquipmentData.AccessoryUpgrade[AccessoryIndex][AccessoryLevel])
{
GameManager.instance.CharacterStats[statIndex] += data;
}
Evolution();
}
private void Evolution()
{
if (AccessoryLevel != 1) // 해당 악세서리를 처음 획득했을 때만 진입
return;
var equipManageSys = GameManager.instance.EquipManageSys;
int evoPairWeaponIndex = EquipmentData.EvoAccNeedWeaponIndex[AccessoryIndex];
if (equipManageSys.HasWeapon(evoPairWeaponIndex))
{
var pairWeapon = equipManageSys.Weapons[equipManageSys.TransWeaponIndex[evoPairWeaponIndex]];
if(pairWeapon.IsMaster())
{
pairWeapon.BEvolution = true;
pairWeapon.EvolutionProcess();
}
}
}
}