fix upgrades
This commit is contained in:
parent
d8c49317a3
commit
5dcbd3c313
17 changed files with 477 additions and 83 deletions
|
|
@ -255,6 +255,82 @@ CanvasRenderer:
|
|||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 161505811}
|
||||
m_CullTransparentMesh: 1
|
||||
--- !u!1 &229603538
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 229603539}
|
||||
- component: {fileID: 229603541}
|
||||
- component: {fileID: 229603540}
|
||||
m_Layer: 5
|
||||
m_Name: PlayerHealthBarBG
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &229603539
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 229603538}
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children:
|
||||
- {fileID: 1008626378}
|
||||
m_Father: {fileID: 1935311237}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0, y: 0}
|
||||
m_AnchorMax: {x: 0, y: 0}
|
||||
m_AnchoredPosition: {x: 350, y: 220}
|
||||
m_SizeDelta: {x: 660, y: 60}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!114 &229603540
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 229603538}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_Material: {fileID: 0}
|
||||
m_Color: {r: 0.11320752, g: 0.11320752, b: 0.11320752, a: 1}
|
||||
m_RaycastTarget: 1
|
||||
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
||||
m_Maskable: 1
|
||||
m_OnCullStateChanged:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0}
|
||||
m_Type: 1
|
||||
m_PreserveAspect: 0
|
||||
m_FillCenter: 1
|
||||
m_FillMethod: 4
|
||||
m_FillAmount: 1
|
||||
m_FillClockwise: 1
|
||||
m_FillOrigin: 0
|
||||
m_UseSpriteMesh: 0
|
||||
m_PixelsPerUnitMultiplier: 1
|
||||
--- !u!222 &229603541
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 229603538}
|
||||
m_CullTransparentMesh: 1
|
||||
--- !u!1 &342414423
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
|
|
@ -400,6 +476,42 @@ CanvasRenderer:
|
|||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 342414423}
|
||||
m_CullTransparentMesh: 1
|
||||
--- !u!1 &351951401
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 351951402}
|
||||
m_Layer: 5
|
||||
m_Name: BossUI
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 0
|
||||
--- !u!224 &351951402
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 351951401}
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children:
|
||||
- {fileID: 1034624966}
|
||||
m_Father: {fileID: 1935311237}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0, y: 0}
|
||||
m_AnchorMax: {x: 1, y: 1}
|
||||
m_AnchoredPosition: {x: 0, y: 0}
|
||||
m_SizeDelta: {x: 0, y: 0}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!1 &382827736
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
|
|
@ -501,6 +613,10 @@ PrefabInstance:
|
|||
propertyPath: cam
|
||||
value:
|
||||
objectReference: {fileID: 519420031}
|
||||
- target: {fileID: 5275979051295637757, guid: 8764555a5fdde3428903d7ac06f8ff7f, type: 3}
|
||||
propertyPath: hpBarUI
|
||||
value:
|
||||
objectReference: {fileID: 1008626378}
|
||||
- target: {fileID: 5661264056639479186, guid: 8764555a5fdde3428903d7ac06f8ff7f, type: 3}
|
||||
propertyPath: m_LocalPosition.x
|
||||
value: 0
|
||||
|
|
@ -1737,6 +1853,81 @@ CanvasRenderer:
|
|||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 944240573}
|
||||
m_CullTransparentMesh: 1
|
||||
--- !u!1 &1008626377
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 1008626378}
|
||||
- component: {fileID: 1008626380}
|
||||
- component: {fileID: 1008626379}
|
||||
m_Layer: 5
|
||||
m_Name: PlayerHealthBar
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &1008626378
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1008626377}
|
||||
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 229603539}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0, y: 0}
|
||||
m_AnchorMax: {x: 1, y: 1}
|
||||
m_AnchoredPosition: {x: 5, y: 0}
|
||||
m_SizeDelta: {x: -10, y: -10}
|
||||
m_Pivot: {x: 0, y: 0.5}
|
||||
--- !u!114 &1008626379
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1008626377}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_Material: {fileID: 0}
|
||||
m_Color: {r: 1, g: 0.0047169924, b: 0.0047169924, a: 1}
|
||||
m_RaycastTarget: 1
|
||||
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
||||
m_Maskable: 1
|
||||
m_OnCullStateChanged:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0}
|
||||
m_Type: 1
|
||||
m_PreserveAspect: 0
|
||||
m_FillCenter: 1
|
||||
m_FillMethod: 4
|
||||
m_FillAmount: 1
|
||||
m_FillClockwise: 1
|
||||
m_FillOrigin: 0
|
||||
m_UseSpriteMesh: 0
|
||||
m_PixelsPerUnitMultiplier: 1
|
||||
--- !u!222 &1008626380
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1008626377}
|
||||
m_CullTransparentMesh: 1
|
||||
--- !u!1001 &1014855760
|
||||
PrefabInstance:
|
||||
m_ObjectHideFlags: 0
|
||||
|
|
@ -1950,6 +2141,82 @@ MonoBehaviour:
|
|||
m_Script: {fileID: 11500000, guid: a75a4c92b7f4707cb82c77fef57ae2b3, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
--- !u!1 &1034624965
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 1034624966}
|
||||
- component: {fileID: 1034624968}
|
||||
- component: {fileID: 1034624967}
|
||||
m_Layer: 5
|
||||
m_Name: HealthBarBG
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &1034624966
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1034624965}
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children:
|
||||
- {fileID: 1923631094}
|
||||
m_Father: {fileID: 351951402}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0.5, y: 1}
|
||||
m_AnchorMax: {x: 0.5, y: 1}
|
||||
m_AnchoredPosition: {x: 0, y: -120}
|
||||
m_SizeDelta: {x: 1200, y: 60}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!114 &1034624967
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1034624965}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_Material: {fileID: 0}
|
||||
m_Color: {r: 0.20754719, g: 0.20754719, b: 0.20754719, a: 1}
|
||||
m_RaycastTarget: 1
|
||||
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
||||
m_Maskable: 1
|
||||
m_OnCullStateChanged:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0}
|
||||
m_Type: 1
|
||||
m_PreserveAspect: 0
|
||||
m_FillCenter: 1
|
||||
m_FillMethod: 4
|
||||
m_FillAmount: 1
|
||||
m_FillClockwise: 1
|
||||
m_FillOrigin: 0
|
||||
m_UseSpriteMesh: 0
|
||||
m_PixelsPerUnitMultiplier: 1
|
||||
--- !u!222 &1034624968
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1034624965}
|
||||
m_CullTransparentMesh: 1
|
||||
--- !u!1 &1108889697
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
|
|
@ -2511,6 +2778,8 @@ MonoBehaviour:
|
|||
player: {fileID: 394036756}
|
||||
upgradeToAdd: {fileID: 11400000, guid: 6fe34d7ec95c2ce1fac0727c553b5f0b, type: 2}
|
||||
upgradeButton: {fileID: 0}
|
||||
allUpgrades:
|
||||
- {fileID: 11400000, guid: 6fe34d7ec95c2ce1fac0727c553b5f0b, type: 2}
|
||||
--- !u!4 &1432589379
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
|
|
@ -3293,6 +3562,81 @@ MonoBehaviour:
|
|||
m_Script: {fileID: 11500000, guid: a75a4c92b7f4707cb82c77fef57ae2b3, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
--- !u!1 &1923631093
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 1923631094}
|
||||
- component: {fileID: 1923631096}
|
||||
- component: {fileID: 1923631095}
|
||||
m_Layer: 5
|
||||
m_Name: HealthBar
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &1923631094
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1923631093}
|
||||
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 1034624966}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0, y: 0}
|
||||
m_AnchorMax: {x: 1, y: 1}
|
||||
m_AnchoredPosition: {x: 10, y: 0}
|
||||
m_SizeDelta: {x: -20, y: -20}
|
||||
m_Pivot: {x: 0, y: 0.5}
|
||||
--- !u!114 &1923631095
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1923631093}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_Material: {fileID: 0}
|
||||
m_Color: {r: 1, g: 0.1745283, b: 0.1745283, a: 1}
|
||||
m_RaycastTarget: 1
|
||||
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
||||
m_Maskable: 1
|
||||
m_OnCullStateChanged:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0}
|
||||
m_Type: 1
|
||||
m_PreserveAspect: 0
|
||||
m_FillCenter: 1
|
||||
m_FillMethod: 4
|
||||
m_FillAmount: 1
|
||||
m_FillClockwise: 1
|
||||
m_FillOrigin: 0
|
||||
m_UseSpriteMesh: 0
|
||||
m_PixelsPerUnitMultiplier: 1
|
||||
--- !u!222 &1923631096
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1923631093}
|
||||
m_CullTransparentMesh: 1
|
||||
--- !u!1 &1935311233
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
|
|
@ -3391,6 +3735,8 @@ RectTransform:
|
|||
- {fileID: 1493212142}
|
||||
- {fileID: 5007058640176408060}
|
||||
- {fileID: 342414424}
|
||||
- {fileID: 351951402}
|
||||
- {fileID: 229603539}
|
||||
m_Father: {fileID: 0}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0, y: 0}
|
||||
|
|
@ -3536,6 +3882,8 @@ MonoBehaviour:
|
|||
currentSpawnTime: 0
|
||||
bossEnemy: {fileID: 2525771944862034798, guid: ca7ae32805f29008d963b8443490ef42, type: 3}
|
||||
bossSpawnPoint: {fileID: 382827739}
|
||||
bossUI: {fileID: 351951401}
|
||||
bossHealthBar: {fileID: 1923631094}
|
||||
enemyFolder: {fileID: 1319590957}
|
||||
player: {fileID: 1582287016}
|
||||
--- !u!4 &1972076835
|
||||
|
|
|
|||
|
|
@ -21,18 +21,12 @@ public class AbilityManager : MonoBehaviour
|
|||
}
|
||||
|
||||
#endregion
|
||||
|
||||
public class StoredUpgrade
|
||||
{
|
||||
public AbilityUpgrade upgrade;
|
||||
public int count;
|
||||
}
|
||||
public MarisaAbilityHandler player;
|
||||
public AbilityUpgrade upgradeToAdd;
|
||||
public Button upgradeButton;
|
||||
|
||||
[Header("Upgrades")]
|
||||
public HashSet<StoredUpgrade> upgradesInventory = new();
|
||||
[Header("Upgrades")]
|
||||
public AbilityUpgrade[] allUpgrades;
|
||||
public Dictionary<AbilityUpgrade, int> upgradesInventory = new();
|
||||
private void Start()
|
||||
{
|
||||
// upgradeButton.onClick.AddListener((() => AddUpgrade(upgradeToAdd, player.mainAttackInstance)));
|
||||
|
|
@ -41,72 +35,42 @@ public class AbilityManager : MonoBehaviour
|
|||
|
||||
public void StoreUpgrade(AbilityUpgrade upgradeToStore)
|
||||
{
|
||||
foreach (StoredUpgrade storedUpgrade in upgradesInventory)
|
||||
if (!upgradesInventory.ContainsKey(upgradeToStore))
|
||||
{
|
||||
if (storedUpgrade.upgrade == upgradeToStore)
|
||||
{
|
||||
storedUpgrade.count++;
|
||||
Debug.Log($"Added upgrade {storedUpgrade.upgrade.upgradeName}. Current count: {storedUpgrade.count}");
|
||||
AbilityUIHandler.instance.UpdateInventory();
|
||||
return;
|
||||
}
|
||||
upgradesInventory[upgradeToStore] = 0;
|
||||
}
|
||||
|
||||
StoredUpgrade newUpgrade = new()
|
||||
{
|
||||
upgrade = upgradeToStore,
|
||||
count = 1
|
||||
};
|
||||
upgradesInventory.Add(newUpgrade);
|
||||
Debug.Log($"Added upgrade {newUpgrade.upgrade.upgradeName}. Current count: {newUpgrade.count}");
|
||||
upgradesInventory[upgradeToStore]++;
|
||||
Debug.Log($"Added upgrade {upgradeToStore.upgradeName}. Current count: {upgradesInventory[upgradeToStore]}");
|
||||
AbilityUIHandler.instance.UpdateInventory();
|
||||
}
|
||||
|
||||
public int GetUpgradeCount(AbilityUpgrade upgrade)
|
||||
{
|
||||
if (!upgradesInventory.ContainsKey(upgrade))
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
return upgradesInventory[upgrade];
|
||||
}
|
||||
public void AddUpgrade(AbilityUpgrade upgrade, PlayerAbility ability)
|
||||
{
|
||||
foreach (StoredUpgrade storedUpgrade in upgradesInventory.ToArray())
|
||||
if (upgradesInventory.ContainsKey(upgrade))
|
||||
{
|
||||
if (storedUpgrade.upgrade == upgrade)
|
||||
upgradesInventory[upgrade]--;
|
||||
if (upgradesInventory[upgrade] <= 0)
|
||||
{
|
||||
storedUpgrade.count--;
|
||||
if (storedUpgrade.count <= 0)
|
||||
{
|
||||
upgradesInventory.Remove(storedUpgrade);
|
||||
AbilityUIHandler.instance.UpdateInventory();
|
||||
}
|
||||
if (!ability.attachedUpgrades.Contains(upgrade))
|
||||
{
|
||||
AbilityUpgrade newUpgrade = Instantiate(upgrade, ability.transform);
|
||||
ability.attachedUpgrades.Add(newUpgrade);
|
||||
newUpgrade.thisPlayerAbility = ability;
|
||||
newUpgrade.ApplyUpgrade();
|
||||
}
|
||||
else
|
||||
{
|
||||
ability.attachedUpgrades.TryGetValue(upgrade, out AbilityUpgrade foundUpgrade);
|
||||
if (foundUpgrade)
|
||||
{
|
||||
foundUpgrade.count++;
|
||||
foundUpgrade.ApplyUpgrade();
|
||||
}
|
||||
}
|
||||
upgradesInventory.Remove(upgrade);
|
||||
}
|
||||
ability.AddUpgrade(upgrade);
|
||||
AbilityUIHandler.instance.UpdateInventory();
|
||||
}
|
||||
}
|
||||
|
||||
public void RemoveUpgrade(AbilityUpgrade upgrade, PlayerAbility ability)
|
||||
{
|
||||
if (ability.attachedUpgrades.TryGetValue(upgrade, out AbilityUpgrade foundUpgrade))
|
||||
if (ability.RemoveUpgrade(upgrade))
|
||||
{
|
||||
if (foundUpgrade.count > 1)
|
||||
{
|
||||
foundUpgrade.ApplyRemoval();
|
||||
foundUpgrade.count--;
|
||||
}
|
||||
else
|
||||
{
|
||||
foundUpgrade.ApplyRemoval();
|
||||
ability.attachedUpgrades.Remove(foundUpgrade);
|
||||
}
|
||||
StoreUpgrade(upgrade);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -45,10 +45,14 @@ public class AbilityUIHandler : MonoBehaviour
|
|||
{
|
||||
Destroy(child.gameObject);
|
||||
}
|
||||
foreach (AbilityManager.StoredUpgrade storedUpgrade in AbilityManager.instance.upgradesInventory)
|
||||
foreach (AbilityUpgrade upgrade in AbilityManager.instance.allUpgrades)
|
||||
{
|
||||
StoredAbilityUpgradeUI newUI = Instantiate(templateStoredUpgradeUI, upgradeGrid);
|
||||
newUI.SetUpgrade(storedUpgrade.upgrade, storedUpgrade.count);
|
||||
int upgradeCount = AbilityManager.instance.GetUpgradeCount(upgrade);
|
||||
if (upgradeCount > 0)
|
||||
{
|
||||
StoredAbilityUpgradeUI newUI = Instantiate(templateStoredUpgradeUI, upgradeGrid);
|
||||
newUI.SetUpgrade(upgrade, upgradeCount);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -34,9 +34,12 @@ public class AbilityUIObject : MonoBehaviour
|
|||
piercing.text = $"Piercing: {isBullet.pierceAmount}";
|
||||
projectileCount.text = $"Projectiles: {isBullet.projectileCount}";
|
||||
}
|
||||
foreach (AbilityUpgrade upgrade in thisAbility.attachedUpgrades)
|
||||
foreach (AbilityUpgrade upgrade in AbilityManager.instance.allUpgrades)
|
||||
{
|
||||
AddUpgradeBox(upgrade);
|
||||
if (thisAbility.GetUpgradeCount(upgrade) > 0)
|
||||
{
|
||||
AddUpgradeBox(upgrade);
|
||||
}
|
||||
}
|
||||
|
||||
int upgradeBoxesToAdd = Math.Abs(upgradeSlotAmount - upgradeBoxes.Count);
|
||||
|
|
|
|||
|
|
@ -15,7 +15,7 @@ public class PlayerAbility : MonoBehaviour
|
|||
[Header("Stats")]
|
||||
public float power;
|
||||
public float projectileCount;
|
||||
public HashSet<AbilityUpgrade> attachedUpgrades = new();
|
||||
public Dictionary<AbilityUpgrade, int> attachedUpgrades = new();
|
||||
|
||||
public void TryAbility()
|
||||
{
|
||||
|
|
@ -37,4 +37,37 @@ public class PlayerAbility : MonoBehaviour
|
|||
currentCooldown -= Time.deltaTime;
|
||||
}
|
||||
}
|
||||
|
||||
public void AddUpgrade(AbilityUpgrade upgrade)
|
||||
{
|
||||
if (!attachedUpgrades.ContainsKey(upgrade))
|
||||
{
|
||||
attachedUpgrades[upgrade] = 0;
|
||||
}
|
||||
attachedUpgrades[upgrade]++;
|
||||
upgrade.ApplyUpgrade(this);
|
||||
}
|
||||
|
||||
public bool RemoveUpgrade(AbilityUpgrade upgrade)
|
||||
{
|
||||
if (attachedUpgrades.ContainsKey(upgrade))
|
||||
{
|
||||
attachedUpgrades[upgrade]--;
|
||||
if (attachedUpgrades[upgrade] >= 0)
|
||||
{
|
||||
attachedUpgrades.Remove(upgrade);
|
||||
}
|
||||
upgrade.ApplyRemoval(this);
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
public int GetUpgradeCount(AbilityUpgrade upgrade)
|
||||
{
|
||||
if (!attachedUpgrades.ContainsKey(upgrade))
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
return attachedUpgrades[upgrade];
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -5,21 +5,20 @@ public class AbilityUpgrade : ScriptableObject
|
|||
[Header("Identification")]
|
||||
public string upgradeName;
|
||||
public Sprite upgradeIcon;
|
||||
public PlayerAbility thisPlayerAbility;
|
||||
[Header("Stats")]
|
||||
public int count = 1;
|
||||
public PlayerAbility thisPlayerAbility;
|
||||
|
||||
public virtual void ApplyUpgrade()
|
||||
public void ApplyUpgrade(PlayerAbility abilityToUpgrade)
|
||||
{
|
||||
UpgradeEffects();
|
||||
UpgradeEffects(abilityToUpgrade);
|
||||
}
|
||||
|
||||
protected virtual void UpgradeEffects()
|
||||
protected virtual void UpgradeEffects(PlayerAbility abilityToUpgrade)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public virtual void ApplyRemoval()
|
||||
public virtual void ApplyRemoval(PlayerAbility abilityToRemove)
|
||||
{
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -4,9 +4,8 @@ public class AttackSpeedUpgrade : AbilityUpgrade
|
|||
{
|
||||
[SerializeField] private float speedUpgradeAmount;
|
||||
|
||||
public override void ApplyUpgrade()
|
||||
protected override void UpgradeEffects(PlayerAbility abilityToUpgrade)
|
||||
{
|
||||
base.ApplyUpgrade();
|
||||
thisPlayerAbility.cooldown *= speedUpgradeAmount;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,8 +3,8 @@ using UnityEngine;
|
|||
[CreateAssetMenu(fileName = "Projectile Count Upgrade", menuName = "AbilityUpgrades/ProjectileCountUpgrade")]
|
||||
public class ProjectileCountUpgrade : AbilityUpgrade
|
||||
{
|
||||
protected override void UpgradeEffects()
|
||||
protected override void UpgradeEffects(PlayerAbility abilityToUpgrade)
|
||||
{
|
||||
thisPlayerAbility.projectileCount++; //idk how this will work for the stacking.
|
||||
abilityToUpgrade.projectileCount++; //idk how this will work for the stacking.
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -17,12 +17,11 @@ public class UpgradeBoxUI : MonoBehaviour, IDropHandler
|
|||
return;
|
||||
}
|
||||
counterUI.gameObject.SetActive(true);
|
||||
counterUI.text = $"x{thisAbilityUpgrade.count}";
|
||||
counterUI.text = $"x{thisPlayerAbility.attachedUpgrades[thisAbilityUpgrade]}";
|
||||
}
|
||||
|
||||
public void OnDrop(PointerEventData eventData)
|
||||
{
|
||||
Debug.Log("A");
|
||||
if (eventData.pointerDrag.TryGetComponent(out StoredAbilityUpgradeUI isStoredUpgrade) && (!thisAbilityUpgrade || isStoredUpgrade.storedUpgrade == thisAbilityUpgrade))
|
||||
{
|
||||
thisAbilityUpgrade = isStoredUpgrade.storedUpgrade;
|
||||
|
|
|
|||
|
|
@ -12,6 +12,7 @@ public class Enemy : Entity
|
|||
public EnemyAbility ability;
|
||||
public float currentCooldown;
|
||||
}
|
||||
public static event Action OnDamaged;
|
||||
[Header("Targetting")]
|
||||
public Entity closestTarget;
|
||||
public float engagementRange;
|
||||
|
|
@ -112,6 +113,12 @@ public class Enemy : Entity
|
|||
}
|
||||
}
|
||||
|
||||
public override void TakeDamage(float damage)
|
||||
{
|
||||
base.TakeDamage(damage);
|
||||
OnDamaged?.Invoke();
|
||||
}
|
||||
|
||||
protected virtual void DropUpgrade(UpgradeDrop drop)
|
||||
{
|
||||
float random = Random.Range(0, 100);
|
||||
|
|
|
|||
|
|
@ -29,10 +29,14 @@ public class EnemySpawner : MonoBehaviour
|
|||
[SerializeField] private float currentSpawnTime;
|
||||
[Header("Boss")]
|
||||
public Enemy bossEnemy;
|
||||
private Enemy bossEnemyInstance;
|
||||
public Transform bossSpawnPoint;
|
||||
[SerializeField] private GameObject bossUI;
|
||||
[SerializeField] private Transform bossHealthBar;
|
||||
[Header("Cache")]
|
||||
[SerializeField] private Transform enemyFolder;
|
||||
[SerializeField] private Marisa player;
|
||||
|
||||
private void Update()
|
||||
{
|
||||
if (canSpawn)
|
||||
|
|
@ -46,16 +50,24 @@ public class EnemySpawner : MonoBehaviour
|
|||
}
|
||||
}
|
||||
|
||||
public void SpawnEnemy(Enemy enemy, Vector3 location)
|
||||
public Enemy SpawnEnemy(Enemy enemy, Vector3 location)
|
||||
{
|
||||
Enemy newEnemy = Instantiate(enemy, location, Quaternion.identity);
|
||||
newEnemy.transform.SetParent(enemyFolder);
|
||||
newEnemy.closestTarget = player; //idk if there's actually gonna be any other target lol
|
||||
return newEnemy;
|
||||
}
|
||||
|
||||
public void StartBoss()
|
||||
{
|
||||
SpawnEnemy(bossEnemy, bossSpawnPoint.position);
|
||||
bossEnemyInstance = SpawnEnemy(bossEnemy, bossSpawnPoint.position);
|
||||
bossUI.SetActive(true);
|
||||
canSpawn = false;
|
||||
Enemy.OnDamaged += UpdateBossHealthBar; //this kinda sucks but it technically works??
|
||||
}
|
||||
|
||||
private void UpdateBossHealthBar()
|
||||
{
|
||||
bossHealthBar.localScale = new Vector3(Math.Clamp(bossEnemyInstance.health / bossEnemyInstance.maxHealth, 0, bossEnemyInstance.maxHealth), 1, 1);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
using System;
|
||||
using UnityEngine;
|
||||
|
||||
public class Entity : MonoBehaviour
|
||||
|
|
@ -11,6 +12,7 @@ public class Entity : MonoBehaviour
|
|||
[Header("Stats")]
|
||||
public float health;
|
||||
public float maxHealth;
|
||||
|
||||
[Header("Movement")]
|
||||
[SerializeField] private bool isFacingRight;
|
||||
[SerializeField] protected Rigidbody2D rb;
|
||||
|
|
@ -37,7 +39,7 @@ public class Entity : MonoBehaviour
|
|||
rb.linearVelocity = moveDirection * speed;
|
||||
}
|
||||
}
|
||||
public void TakeDamage(float damage)
|
||||
public virtual void TakeDamage(float damage)
|
||||
{
|
||||
health -= damage;
|
||||
if (health < 0)
|
||||
|
|
|
|||
|
|
@ -9,6 +9,8 @@ public class Marisa : Entity
|
|||
public Vector2 mouseWorldPos;
|
||||
public Transform firingPointBase;
|
||||
public Transform firingPoint;
|
||||
[Header("UI")]
|
||||
[SerializeField] private Transform hpBarUI;
|
||||
private void Update()
|
||||
{
|
||||
mouseWorldPos = cam.ScreenToWorldPoint(Input.mousePosition);
|
||||
|
|
@ -20,4 +22,15 @@ public class Marisa : Entity
|
|||
moveDirection = new Vector2(Input.GetAxis("Horizontal"), Input.GetAxis("Vertical"));
|
||||
base.FixedUpdate();
|
||||
}
|
||||
|
||||
public override void TakeDamage(float damage)
|
||||
{
|
||||
base.TakeDamage(damage);
|
||||
UpdateHealthUI();
|
||||
}
|
||||
|
||||
private void UpdateHealthUI()
|
||||
{
|
||||
hpBarUI.localScale = new Vector3(Math.Clamp(health/maxHealth,0,maxHealth), 1,1);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
9
Assets/Scripts/LevelSwitcher.cs
Normal file
9
Assets/Scripts/LevelSwitcher.cs
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
using UnityEngine;
|
||||
|
||||
public class LevelSwitcher : MonoBehaviour
|
||||
{
|
||||
public void ChangeLevel()
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
2
Assets/Scripts/LevelSwitcher.cs.meta
Normal file
2
Assets/Scripts/LevelSwitcher.cs.meta
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 717ca245990ccea7580364c54b200c8d
|
||||
|
|
@ -21,7 +21,7 @@ public class StoredAbilityUpgradeUI : MonoBehaviour, IBeginDragHandler, IDragHan
|
|||
|
||||
public void OnBeginDrag(PointerEventData eventData)
|
||||
{
|
||||
parentAfterDrag = transform.parent;
|
||||
parentAfterDrag = icon.transform.parent;
|
||||
icon.raycastTarget = false;
|
||||
icon.transform.SetParent(transform.root);
|
||||
icon.transform.SetAsLastSibling();
|
||||
|
|
|
|||
|
|
@ -53,4 +53,4 @@ Physics2DSettings:
|
|||
m_ReuseCollisionCallbacks: 1
|
||||
m_AutoSyncTransforms: 0
|
||||
m_GizmoOptions: 10
|
||||
m_LayerCollisionMatrix: 010000000000000000000000400000000000000000000000c801000040000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||
m_LayerCollisionMatrix: 010000000000000000000000400000000000000000000000c803000040000000400000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue