-
Notifications
You must be signed in to change notification settings - Fork 2
develop WeaponEvolution
pianoop edited this page Apr 26, 2023
·
2 revisions
EquipmentManageSystem.cs 내에 구현
public bool HasWeapon(int weaponIndex)
{
return TransWeaponIndex[weaponIndex] >= 0;
}
public bool HasAcc(int accIndex)
{
return TransAccessoryIndex[accIndex] >= 0;
}
Weapon.cs 내에 구현
private void evolution()
{
if (!IsMaster())
return;
var equipManageSys = GameManager.instance.equipManageSys;
int evoPairAccIndex = EquipmentData.EvoWeaponNeedAccIndex[WeaponIndex];
if (evoPairAccIndex < 0) // 짝이 되는 악세서리의 index = -1 -> 짝이 무기인 경우
evolutionException(equipManageSys);
else if (equipManageSys.HasAcc(evoPairAccIndex))
bEvolution = true;
if (bEvolution)
evolutionProcess();
}
private void evolutionException(EquipmentManagementSystem equipManageSys) // 진화에 필요한 짝이 악세서리가 아닌 무기인 경우(예시 - 비둘기, 흑비둘기)
{
var evoPairWeaponIndex = EquipmentData.EvoWeaponNeedWeaponIndex[WeaponIndex];
if (equipManageSys.HasWeapon(evoPairWeaponIndex) && equipManageSys.Weapons[equipManageSys.TransWeaponIndex[evoPairWeaponIndex]].IsMaster())
bEvolution = equipManageSys.Weapons[equipManageSys.TransWeaponIndex[evoPairWeaponIndex]].bEvolution = true;
}
Weapon.cs 내에 구현
private void evolutionProcess()
{
switch (WeaponIndex)
{
case 0: // Whip
break;
case 1: // MagicWand
break;
case 2: // Knife
break;
case 3: // Axe
break;
case 4: // Cross
break;
case 5: //KingBible
break;
case 6: // FireWand
break;
case 7: // Garlic
break;
case 8: // SantaWater
break;
case 9: // Peachone
GetComponent<Peachone>().EvolutionProcess();
break;
case 10: // EbonyWings
GetComponent<EbonyWings>().EvolutionProcess();
break;
case 11: // Runetracer
break;
case 12: // LightningRing
break;
}
}
진화시 무기별로 처리해야 하는 기능을 수행하는 함수 호출
예) peachone, ebonyWings - 기존의 유저를 따라다니는 새 object 둘을 destory한 후 진화한 새 object를 새로 소환해줌