法杖,武器切换
This commit is contained in:
8
Assets/Scripts/MainGame/Managers/BattleManager.meta
Normal file
8
Assets/Scripts/MainGame/Managers/BattleManager.meta
Normal file
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 227a01888e283184ca2c520daf8ac212
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,89 @@
|
||||
using System.Collections.Generic;
|
||||
using Cielonos.MainGame.Characters;
|
||||
using UnityEngine;
|
||||
|
||||
namespace Cielonos.MainGame
|
||||
{
|
||||
public partial class BattleManager
|
||||
{
|
||||
public class AttackAreaSubmodule : SubmoduleBase<BattleManager>
|
||||
{
|
||||
public AttackAreaCollection playerAttackAreas;
|
||||
public AttackAreaCollection enemyAttackAreas;
|
||||
|
||||
public AttackAreaSubmodule(BattleManager owner) : base(owner)
|
||||
{
|
||||
playerAttackAreas = new AttackAreaCollection();
|
||||
enemyAttackAreas = new AttackAreaCollection();
|
||||
}
|
||||
|
||||
public void Register(AttackAreaBase attackArea)
|
||||
{
|
||||
if (attackArea.creator.fraction == Fraction.Player)
|
||||
{
|
||||
Debug.Log($"Registered AttackArea: {attackArea.areaName}");
|
||||
playerAttackAreas.Add(attackArea);
|
||||
}
|
||||
else if (attackArea.creator.fraction == Fraction.Enemy)
|
||||
{
|
||||
enemyAttackAreas.Add(attackArea);
|
||||
}
|
||||
}
|
||||
|
||||
public void Unregister(AttackAreaBase attackArea)
|
||||
{
|
||||
if (attackArea.creator.fraction == Fraction.Player)
|
||||
{
|
||||
Debug.Log($"Unregistered AttackArea: {attackArea.areaName}");
|
||||
playerAttackAreas.Remove(attackArea);
|
||||
}
|
||||
else if (attackArea.creator.fraction == Fraction.Enemy)
|
||||
{
|
||||
enemyAttackAreas.Remove(attackArea);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public class AttackAreaCollection
|
||||
{
|
||||
public List<AttackAreaBase> activeAttackAreas;
|
||||
public List<NormalArea> activeNormalAreas;
|
||||
public List<Projectile> activeProjectiles;
|
||||
|
||||
public AttackAreaCollection()
|
||||
{
|
||||
activeAttackAreas = new List<AttackAreaBase>();
|
||||
activeNormalAreas = new List<NormalArea>();
|
||||
activeProjectiles = new List<Projectile>();
|
||||
}
|
||||
|
||||
public void Add(AttackAreaBase attackArea)
|
||||
{
|
||||
activeAttackAreas.Add(attackArea);
|
||||
|
||||
if (attackArea is NormalArea normalArea)
|
||||
{
|
||||
activeNormalAreas.Add(normalArea);
|
||||
}
|
||||
else if (attackArea is Projectile projectile)
|
||||
{
|
||||
activeProjectiles.Add(projectile);
|
||||
}
|
||||
}
|
||||
|
||||
public void Remove(AttackAreaBase attackArea)
|
||||
{
|
||||
activeAttackAreas.Remove(attackArea);
|
||||
|
||||
if (attackArea is NormalArea normalArea)
|
||||
{
|
||||
activeNormalAreas.Remove(normalArea);
|
||||
}
|
||||
else if (attackArea is Projectile projectile)
|
||||
{
|
||||
activeProjectiles.Remove(projectile);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: e21e9325e65fefa42924ff1f8880d266
|
||||
@@ -0,0 +1,34 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using Cielonos.MainGame.Characters;
|
||||
using Sirenix.OdinInspector;
|
||||
using SLSFramework.General;
|
||||
using UnityEngine;
|
||||
|
||||
namespace Cielonos.MainGame
|
||||
{
|
||||
public partial class BattleManager : Singleton<BattleManager>
|
||||
{
|
||||
private static Player Player => MainGameManager.Player;
|
||||
|
||||
[ShowInInspector]
|
||||
private EnemySubmodule enemySm;
|
||||
|
||||
[ShowInInspector]
|
||||
private AttackAreaSubmodule attackAreaSm;
|
||||
|
||||
protected override void Awake()
|
||||
{
|
||||
base.Awake();
|
||||
enemySm ??= new EnemySubmodule(this);
|
||||
attackAreaSm ??= new AttackAreaSubmodule(this);
|
||||
}
|
||||
}
|
||||
|
||||
public partial class BattleManager
|
||||
{
|
||||
public static EnemySubmodule EnemySm => Instance.enemySm;
|
||||
public static AttackAreaSubmodule AttackAreaSm => Instance.attackAreaSm;
|
||||
}
|
||||
}
|
||||
@@ -1,32 +1,10 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using Cielonos.MainGame.Characters;
|
||||
using Sirenix.OdinInspector;
|
||||
using SLSFramework.General;
|
||||
using UnityEngine;
|
||||
|
||||
namespace Cielonos.MainGame
|
||||
{
|
||||
public partial class BattleManager : Singleton<BattleManager>
|
||||
{
|
||||
private static Player Player => MainGameManager.Player;
|
||||
|
||||
[ShowInInspector]
|
||||
private EnemySubmodule enemySm;
|
||||
|
||||
protected override void Awake()
|
||||
{
|
||||
base.Awake();
|
||||
enemySm ??= new EnemySubmodule(this);
|
||||
}
|
||||
}
|
||||
|
||||
public partial class BattleManager
|
||||
{
|
||||
public static EnemySubmodule EnemySm => Instance.enemySm;
|
||||
}
|
||||
|
||||
public partial class BattleManager
|
||||
{
|
||||
public class EnemySubmodule : SubmoduleBase<BattleManager>
|
||||
@@ -98,4 +76,4 @@ namespace Cielonos.MainGame
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: cfa83226b5985464ebb62c8b756c514d
|
||||
Reference in New Issue
Block a user