From b64f5b0113d08e730d73f835b6bb32425dc2d3b6 Mon Sep 17 00:00:00 2001 From: yjm484 <171359351@qq.com> Date: Fri, 28 Feb 2025 02:56:49 +0800 Subject: [PATCH] =?UTF-8?q?=E7=89=88=E6=9C=AC=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Assets/GameDate/RelicList.asset | 2 +- .../Assets/GameDate/cardDeckList.asset | 12 +- .../Assets/Scenes/SampleScene.unity | 2 +- .../Assets/Scripts/Buff/Buff.cs | 3 + .../Scripts/Buff/Buff_Bleed3TurnCost.cs | 27 ++ .../Scripts/Buff/Buff_Bleed3TurnCost.cs.meta | 11 + .../Scripts/Buff/Buff_Bleed4TurnCost.cs | 28 ++ .../Scripts/Buff/Buff_Bleed4TurnCost.cs.meta | 11 + .../Assets/Scripts/Buff/Buff_BleedDamage.cs | 30 ++ .../Scripts/Buff/Buff_BleedDamage.cs.meta | 11 + .../Assets/Scripts/Buff/Buff_BleedHeal.cs | 30 ++ .../Scripts/Buff/Buff_BleedHeal.cs.meta | 11 + .../Assets/Scripts/Buff/Buff_CantShield.cs | 26 ++ .../Scripts/Buff/Buff_CantShield.cs.meta | 11 + .../Scripts/Buff/Buff_CantUserEffectCaed.cs | 21 ++ .../Buff/Buff_CantUserEffectCaed.cs.meta | 11 + .../Assets/Scripts/Buff/Buff_DeathMark.cs | 30 ++ .../Scripts/Buff/Buff_DeathMark.cs.meta | 11 + .../Assets/Scripts/Buff/Buff_Disable.cs | 30 ++ .../Assets/Scripts/Buff/Buff_Disable.cs.meta | 11 + .../Buff/Buff_DyeingCardCostMinusOne.cs | 21 ++ .../Buff/Buff_DyeingCardCostMinusOne.cs.meta | 11 + .../Scripts/Buff/Buff_EmberDownOneTurn.cs | 25 ++ .../Buff/Buff_EmberDownOneTurn.cs.meta | 11 + .../Scripts/Buff/Buff_NextCardCostHp.cs | 21 ++ .../Scripts/Buff/Buff_NextCardCostHp.cs.meta | 11 + .../Scripts/Buff/Buff_NextCardCostMinusOne.cs | 21 ++ .../Buff/Buff_NextCardCostMinusOne.cs.meta | 11 + .../Buff/Buff_NextDyeingCardCostZero.cs | 21 ++ .../Buff/Buff_NextDyeingCardCostZero.cs.meta | 11 + .../Buff/Buff_NextDyeingCardRangeAddTwo.cs | 21 ++ .../Buff_NextDyeingCardRangeAddTwo.cs.meta | 11 + .../Buff/Buff_NextEffectCardDoubleSettle.cs | 22 ++ .../Buff_NextEffectCardDoubleSettle.cs.meta | 11 + .../Assets/Scripts/Card/CardDrag.cs | 59 ++- .../Assets/Scripts/Card/CardEntity.cs | 125 +++---- .../Assets/Scripts/Card/CardOriginalData.cs | 6 +- .../Scripts/Card/CardOriginalDataList.cs | 55 +-- .../Assets/Scripts/Card/CardPictureManager.cs | 2 +- .../Scripts/Card/CardResourcesManager.cs | 90 +++++ .../Assets/Scripts/Card/TurnMaster.cs | 240 +++++++++++- .../Assets/Scripts/Enemy/Enemy.cs | 4 +- .../Assets/Scripts/Enemy/EnemyNode.cs | 144 ++++++-- .../Assets/Scripts/Enemy/V0.1/AshBeetle.cs | 2 +- .../Scripts/Enemy/V0.1/BlastFistMushroom.cs | 4 +- .../Scripts/Enemy/V0.1/CorrosiveSludge.cs | 2 +- .../Assets/Scripts/Enemy/V0.1/DarkCloud.cs | 2 +- .../Assets/Scripts/Enemy/V0.1/DrowsyShroom.cs | 2 +- .../Assets/Scripts/Enemy/V0.1/EmberWraith.cs | 2 +- .../Assets/Scripts/Enemy/V0.1/Grinfiend.cs | 2 +- .../Assets/Scripts/Enemy/V0.1/HoodWanderer.cs | 2 +- .../Assets/Scripts/Enemy/V0.1/Mushroom.cs | 2 +- .../Scripts/Enemy/V0.1/ParasiticMushroom.cs | 2 +- .../Assets/Scripts/Enemy/V0.1/Polymaw.cs | 2 +- .../Enemy/V0.1/ShatteringFistMushroom.cs | 2 +- .../Scripts/Enemy/V0.1/SkullGuardian.cs | 2 +- .../Assets/Scripts/Enemy/V0.1/SkullMage.cs | 2 +- .../Assets/Scripts/Enemy/V0.1/SkullWarlock.cs | 2 +- .../Assets/Scripts/Legacy/LegacyChild.meta | 2 +- .../LegacyChild/LegacyNode_ActivatedCarbon.cs | 8 + .../LegacyNode_ActivatedCarbon.cs.meta | 11 + .../LegacyNode_AegisOfTheImmortal.cs | 29 ++ .../LegacyNode_AegisOfTheImmortal.cs.meta | 11 + .../LegacyChild/LegacyNode_BigBackpack.cs | 11 + .../LegacyNode_BigBackpack.cs.meta | 11 + .../Legacy/LegacyChild/LegacyNode_Bipod.cs | 30 ++ .../LegacyChild/LegacyNode_Bipod.cs.meta | 11 + .../LegacyChild/LegacyNode_BloodBorne.cs | 18 + .../LegacyChild/LegacyNode_BloodBorne.cs.meta | 11 + .../Legacy/LegacyChild/LegacyNode_BloodTax.cs | 8 + .../LegacyChild/LegacyNode_BloodTax.cs.meta | 11 + .../LegacyChild/LegacyNode_ChaosTrigger.cs | 27 ++ .../LegacyNode_ChaosTrigger.cs.meta | 11 + .../Legacy/LegacyChild/LegacyNode_Cheese.cs | 12 + .../LegacyChild/LegacyNode_Cheese.cs.meta | 11 + .../Legacy/LegacyChild/LegacyNode_Filter.cs | 11 + .../LegacyChild/LegacyNode_Filter.cs.meta | 11 + .../LegacyChild/LegacyNode_FreeBullet.cs | 17 + .../LegacyChild/LegacyNode_FreeBullet.cs.meta | 11 + .../LegacyChild/LegacyNode_LightningBoots.cs | 24 ++ .../LegacyNode_LightningBoots.cs.meta | 11 + .../Legacy/LegacyChild/LegacyNode_MeatSaw.cs | 8 + .../LegacyChild/LegacyNode_MeatSaw.cs.meta | 11 + .../LegacyChild/LegacyNode_NurturingBloom.cs | 15 + .../LegacyNode_NurturingBloom.cs.meta | 11 + .../LegacyChild/LegacyNode_PainContract.cs | 21 ++ .../LegacyNode_PainContract.cs.meta | 11 + .../Legacy/LegacyChild/LegacyNode_Parasol.cs | 15 + .../LegacyChild/LegacyNode_Parasol.cs.meta | 11 + .../LegacyNode_PerpetualMotionPump.cs | 8 + .../LegacyNode_PerpetualMotionPump.cs.meta | 11 + .../LegacyChild/LegacyNode_PlatedSteelcaps.cs | 11 + .../LegacyNode_PlatedSteelcaps.cs.meta | 11 + .../LegacyChild/LegacyNode_PortableReactor.cs | 8 + .../LegacyNode_PortableReactor.cs.meta | 11 + .../Legacy/LegacyChild/LegacyNode_Prism.cs | 17 + .../LegacyChild/LegacyNode_Prism.cs.meta | 11 + .../LegacyChild/LegacyNode_PurityBadge.cs | 8 + .../LegacyNode_PurityBadge.cs.meta | 11 + .../Legacy/LegacyChild/LegacyNode_Sneakers.cs | 11 + .../LegacyChild/LegacyNode_Sneakers.cs.meta | 11 + .../LegacyChild/LegacyNode_SpeedLoader.cs | 18 + .../LegacyNode_SpeedLoader.cs.meta | 11 + .../LegacyNode_WasteReconstructor.cs | 18 + .../LegacyNode_WasteReconstructor.cs.meta | 11 + .../Assets/Scripts/Legacy/LegacyChildOld.meta | 8 + .../LegacyNode_AgnisTorch.cs | 0 .../LegacyNode_AgnisTorch.cs.meta | 0 .../LegacyNode_AncientSilverCoin.cs | 0 .../LegacyNode_AncientSilverCoin.cs.meta | 0 .../LegacyNode_EnchantedConch.cs | 0 .../LegacyNode_EnchantedConch.cs.meta | 0 .../LegacyNode_GoldVines.cs | 0 .../LegacyNode_GoldVines.cs.meta | 0 .../LegacyNode_LavaHeart.cs | 0 .../LegacyNode_LavaHeart.cs.meta | 0 .../LegacyNode_MechanicalBoots.cs | 0 .../LegacyNode_MechanicalBoots.cs.meta | 0 .../LegacyNode_Scope.cs | 0 .../LegacyNode_Scope.cs.meta | 0 .../LegacyNode_SnakeGall.cs | 0 .../LegacyNode_SnakeGall.cs.meta | 0 .../LegacyNode_Starfish.cs | 0 .../LegacyNode_Starfish.cs.meta | 0 .../LegacyNode_StrongBody.cs | 0 .../LegacyNode_StrongBody.cs.meta | 0 .../LegacyNode_SuspiciousMushroom.cs | 0 .../LegacyNode_SuspiciousMushroom.cs.meta | 0 .../LegacyNode_VulcanHammer.cs | 0 .../LegacyNode_VulcanHammer.cs.meta | 0 .../Assets/Scripts/Legacy/LegacyManager.cs | 61 +++- .../Assets/Scripts/Legacy/LegacyNode.cs | 31 +- .../Assets/Scripts/MapUnity.cs | 42 +++ .../Assets/Scripts/Player.cs | 7 +- .../PlayerManager/PlayerStatsManager.cs | 2 +- .../Assets/Scripts/Tool/AbnormalCondition.cs | 37 +- .../Assets/Scripts/Tool/CardFunction.cs | 81 +++++ .../Assets/Scripts/Tool/MathTool.cs | 45 ++- .../Assets/Scripts/Tool/Name.cs | 80 +++- .../Assets/Scripts/Tool/getNodeTools.cs | 51 +++ .../Assets/Scripts/manager/BuffDataManager.cs | 14 + .../Assets/Scripts/manager/CardManager.cs | 73 +++- .../Scripts/manager/DestructionManager.cs | 49 ++- .../Assets/Scripts/manager/MapUnityManager.cs | 22 +- .../Scripts/manager/MapUnitySettleManager.cs | 2 +- .../Scripts/manager/SettlementManager.cs | 342 ++++++++++++++++-- .../Assets/Scripts/manager/Usermanager.cs | 63 +++- .../Assets/StreamingAssets/Relic.csv | 31 +- .../StreamingAssets/card_data_4 - 副本.csv | 4 - .../Assets/StreamingAssets/card_data_5.csv | 16 + ...- 副本.csv.meta => card_data_5.csv.meta} | 2 +- .../StreamingAssets/card_data_effect_4.csv | 36 +- ...harp-Editor.csproj.AssemblyReference.cache | Bin 98740 -> 133886 bytes 153 files changed, 2762 insertions(+), 260 deletions(-) create mode 100644 ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_Bleed3TurnCost.cs create mode 100644 ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_Bleed3TurnCost.cs.meta create mode 100644 ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_Bleed4TurnCost.cs create mode 100644 ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_Bleed4TurnCost.cs.meta create mode 100644 ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_BleedDamage.cs create mode 100644 ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_BleedDamage.cs.meta create mode 100644 ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_BleedHeal.cs create mode 100644 ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_BleedHeal.cs.meta create mode 100644 ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_CantShield.cs create mode 100644 ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_CantShield.cs.meta create mode 100644 ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_CantUserEffectCaed.cs create mode 100644 ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_CantUserEffectCaed.cs.meta create mode 100644 ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_DeathMark.cs create mode 100644 ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_DeathMark.cs.meta create mode 100644 ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_Disable.cs create mode 100644 ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_Disable.cs.meta create mode 100644 ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_DyeingCardCostMinusOne.cs create mode 100644 ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_DyeingCardCostMinusOne.cs.meta create mode 100644 ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_EmberDownOneTurn.cs create mode 100644 ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_EmberDownOneTurn.cs.meta create mode 100644 ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_NextCardCostHp.cs create mode 100644 ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_NextCardCostHp.cs.meta create mode 100644 ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_NextCardCostMinusOne.cs create mode 100644 ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_NextCardCostMinusOne.cs.meta create mode 100644 ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_NextDyeingCardCostZero.cs create mode 100644 ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_NextDyeingCardCostZero.cs.meta create mode 100644 ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_NextDyeingCardRangeAddTwo.cs create mode 100644 ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_NextDyeingCardRangeAddTwo.cs.meta create mode 100644 ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_NextEffectCardDoubleSettle.cs create mode 100644 ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_NextEffectCardDoubleSettle.cs.meta create mode 100644 ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_ActivatedCarbon.cs create mode 100644 ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_ActivatedCarbon.cs.meta create mode 100644 ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_AegisOfTheImmortal.cs create mode 100644 ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_AegisOfTheImmortal.cs.meta create mode 100644 ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_BigBackpack.cs create mode 100644 ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_BigBackpack.cs.meta create mode 100644 ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_Bipod.cs create mode 100644 ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_Bipod.cs.meta create mode 100644 ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_BloodBorne.cs create mode 100644 ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_BloodBorne.cs.meta create mode 100644 ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_BloodTax.cs create mode 100644 ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_BloodTax.cs.meta create mode 100644 ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_ChaosTrigger.cs create mode 100644 ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_ChaosTrigger.cs.meta create mode 100644 ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_Cheese.cs create mode 100644 ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_Cheese.cs.meta create mode 100644 ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_Filter.cs create mode 100644 ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_Filter.cs.meta create mode 100644 ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_FreeBullet.cs create mode 100644 ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_FreeBullet.cs.meta create mode 100644 ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_LightningBoots.cs create mode 100644 ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_LightningBoots.cs.meta create mode 100644 ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_MeatSaw.cs create mode 100644 ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_MeatSaw.cs.meta create mode 100644 ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_NurturingBloom.cs create mode 100644 ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_NurturingBloom.cs.meta create mode 100644 ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_PainContract.cs create mode 100644 ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_PainContract.cs.meta create mode 100644 ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_Parasol.cs create mode 100644 ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_Parasol.cs.meta create mode 100644 ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_PerpetualMotionPump.cs create mode 100644 ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_PerpetualMotionPump.cs.meta create mode 100644 ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_PlatedSteelcaps.cs create mode 100644 ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_PlatedSteelcaps.cs.meta create mode 100644 ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_PortableReactor.cs create mode 100644 ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_PortableReactor.cs.meta create mode 100644 ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_Prism.cs create mode 100644 ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_Prism.cs.meta create mode 100644 ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_PurityBadge.cs create mode 100644 ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_PurityBadge.cs.meta create mode 100644 ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_Sneakers.cs create mode 100644 ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_Sneakers.cs.meta create mode 100644 ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_SpeedLoader.cs create mode 100644 ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_SpeedLoader.cs.meta create mode 100644 ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_WasteReconstructor.cs create mode 100644 ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_WasteReconstructor.cs.meta create mode 100644 ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChildOld.meta rename ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/{LegacyChild => LegacyChildOld}/LegacyNode_AgnisTorch.cs (100%) rename ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/{LegacyChild => LegacyChildOld}/LegacyNode_AgnisTorch.cs.meta (100%) rename ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/{LegacyChild => LegacyChildOld}/LegacyNode_AncientSilverCoin.cs (100%) rename ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/{LegacyChild => LegacyChildOld}/LegacyNode_AncientSilverCoin.cs.meta (100%) rename ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/{LegacyChild => LegacyChildOld}/LegacyNode_EnchantedConch.cs (100%) rename ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/{LegacyChild => LegacyChildOld}/LegacyNode_EnchantedConch.cs.meta (100%) rename ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/{LegacyChild => LegacyChildOld}/LegacyNode_GoldVines.cs (100%) rename ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/{LegacyChild => LegacyChildOld}/LegacyNode_GoldVines.cs.meta (100%) rename ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/{LegacyChild => LegacyChildOld}/LegacyNode_LavaHeart.cs (100%) rename ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/{LegacyChild => LegacyChildOld}/LegacyNode_LavaHeart.cs.meta (100%) rename ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/{LegacyChild => LegacyChildOld}/LegacyNode_MechanicalBoots.cs (100%) rename ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/{LegacyChild => LegacyChildOld}/LegacyNode_MechanicalBoots.cs.meta (100%) rename ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/{LegacyChild => LegacyChildOld}/LegacyNode_Scope.cs (100%) rename ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/{LegacyChild => LegacyChildOld}/LegacyNode_Scope.cs.meta (100%) rename ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/{LegacyChild => LegacyChildOld}/LegacyNode_SnakeGall.cs (100%) rename ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/{LegacyChild => LegacyChildOld}/LegacyNode_SnakeGall.cs.meta (100%) rename ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/{LegacyChild => LegacyChildOld}/LegacyNode_Starfish.cs (100%) rename ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/{LegacyChild => LegacyChildOld}/LegacyNode_Starfish.cs.meta (100%) rename ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/{LegacyChild => LegacyChildOld}/LegacyNode_StrongBody.cs (100%) rename ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/{LegacyChild => LegacyChildOld}/LegacyNode_StrongBody.cs.meta (100%) rename ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/{LegacyChild => LegacyChildOld}/LegacyNode_SuspiciousMushroom.cs (100%) rename ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/{LegacyChild => LegacyChildOld}/LegacyNode_SuspiciousMushroom.cs.meta (100%) rename ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/{LegacyChild => LegacyChildOld}/LegacyNode_VulcanHammer.cs (100%) rename ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/{LegacyChild => LegacyChildOld}/LegacyNode_VulcanHammer.cs.meta (100%) delete mode 100644 ColorlessWorld-2024-4-2/Assets/StreamingAssets/card_data_4 - 副本.csv create mode 100644 ColorlessWorld-2024-4-2/Assets/StreamingAssets/card_data_5.csv rename ColorlessWorld-2024-4-2/Assets/StreamingAssets/{card_data_4 - 副本.csv.meta => card_data_5.csv.meta} (74%) diff --git a/ColorlessWorld-2024-4-2/Assets/GameDate/RelicList.asset b/ColorlessWorld-2024-4-2/Assets/GameDate/RelicList.asset index fa2a1b15..0f9e3915 100644 --- a/ColorlessWorld-2024-4-2/Assets/GameDate/RelicList.asset +++ b/ColorlessWorld-2024-4-2/Assets/GameDate/RelicList.asset @@ -13,4 +13,4 @@ MonoBehaviour: m_Name: RelicList m_EditorClassIdentifier: relicClassNameList: - - LegacyNode_AncientSilverCoin + - LegacyNode_BigBackpack diff --git a/ColorlessWorld-2024-4-2/Assets/GameDate/cardDeckList.asset b/ColorlessWorld-2024-4-2/Assets/GameDate/cardDeckList.asset index e5cedb80..d336211a 100644 --- a/ColorlessWorld-2024-4-2/Assets/GameDate/cardDeckList.asset +++ b/ColorlessWorld-2024-4-2/Assets/GameDate/cardDeckList.asset @@ -13,9 +13,9 @@ MonoBehaviour: m_Name: cardDeckList m_EditorClassIdentifier: cardDeckList: - - 1004 - - 1004 - - 1004 - - 1004 - - 1004 - - 2001 + - 1017 + - 1017 + - 1017 + - 1017 + - 1017 + - 1017 diff --git a/ColorlessWorld-2024-4-2/Assets/Scenes/SampleScene.unity b/ColorlessWorld-2024-4-2/Assets/Scenes/SampleScene.unity index 942ebe1c..9b20a394 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scenes/SampleScene.unity +++ b/ColorlessWorld-2024-4-2/Assets/Scenes/SampleScene.unity @@ -15095,6 +15095,7 @@ MonoBehaviour: whiteNodeCount: 0 blackNodeCount: 0 metalNodeCount: 0 + yellowNodeCount: 0 playerNodeCount: 0 neutralNodeCount: 0 enemyNodeCount: 0 @@ -41426,7 +41427,6 @@ MonoBehaviour: type: 3} legacyFather: {fileID: 1748859173} relicClassNameList: [] - legacyNodesList: [] --- !u!1 &1774587053 GameObject: m_ObjectHideFlags: 0 diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff.cs index b4c092ae..89766316 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff.cs +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff.cs @@ -9,14 +9,17 @@ public class Buff public int value; public Sprite icon; public string iconPath = "BuffIcon_v02/"; + public int count = 0; public virtual void Settle() { value --; + count= 0; } public virtual void SettleEnemy(EnemyNode enemyNode) { value--; + count = 0; } public virtual void SettleEnemyBegin(EnemyNode enemyNode) diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_Bleed3TurnCost.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_Bleed3TurnCost.cs new file mode 100644 index 00000000..18c4f55e --- /dev/null +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_Bleed3TurnCost.cs @@ -0,0 +1,27 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.UI; + +public class Buff_Bleed3TurnCost : Buff +{ + + public override void Settle() + { + count = 0; + } + + + + public override void SettleEnemy(EnemyNode enemyNode) + { + count = 0; + } + public override Buff NewBuff(int value) + { + Buff buff = new Buff_Bleed3TurnCost(); + buff.value = value; + buff.icon = BuffDataManager.Instance.LoadImage(iconPath + "Sslx_Ui_Buff_liuxue_v01"); + return buff; + } +} diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_Bleed3TurnCost.cs.meta b/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_Bleed3TurnCost.cs.meta new file mode 100644 index 00000000..0d240959 --- /dev/null +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_Bleed3TurnCost.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 87021152033dd3d4c905bf3e6634b532 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_Bleed4TurnCost.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_Bleed4TurnCost.cs new file mode 100644 index 00000000..f91fd10a --- /dev/null +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_Bleed4TurnCost.cs @@ -0,0 +1,28 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.UI; + +public class Buff_Bleed4TurnCost : Buff +{ + public override void Settle() + { + count = 0; + } + + + + public override void SettleEnemy(EnemyNode enemyNode) + { + count = 0; + } + + + public override Buff NewBuff(int value) + { + Buff buff = new Buff_Bleed4TurnCost(); + buff.value = value; + buff.icon = BuffDataManager.Instance.LoadImage(iconPath + "Sslx_Ui_Buff_liuxue_v01"); + return buff; + } +} diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_Bleed4TurnCost.cs.meta b/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_Bleed4TurnCost.cs.meta new file mode 100644 index 00000000..a5083577 --- /dev/null +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_Bleed4TurnCost.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: cfbad4c429526724dbf97c5aa362ac9d +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_BleedDamage.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_BleedDamage.cs new file mode 100644 index 00000000..202043cf --- /dev/null +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_BleedDamage.cs @@ -0,0 +1,30 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.UI; + +public class Buff_BleedDamage : Buff +{ + public override void Settle() + { + + } + + + + public override void SettleEnemy(EnemyNode enemyNode) + { + + + + } + + + public override Buff NewBuff(int value) + { + Buff buff = new Buff_BleedDamage(); + buff.value = value; + buff.icon = BuffDataManager.Instance.LoadImage(iconPath + "Sslx_Ui_Buff_liuxue_v01"); + return buff; + } +} diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_BleedDamage.cs.meta b/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_BleedDamage.cs.meta new file mode 100644 index 00000000..b3f706fc --- /dev/null +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_BleedDamage.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 91dfd91b0c739a94d98f01c6d1c20797 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_BleedHeal.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_BleedHeal.cs new file mode 100644 index 00000000..2efe7c5f --- /dev/null +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_BleedHeal.cs @@ -0,0 +1,30 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.UI; + +public class Buff_BleedHeal : Buff +{ + public override void Settle() + { + + } + + + + public override void SettleEnemy(EnemyNode enemyNode) + { + + + + } + + + public override Buff NewBuff(int value) + { + Buff buff = new Buff_BleedHeal(); + buff.value = value; + buff.icon = BuffDataManager.Instance.LoadImage(iconPath + "Sslx_Ui_Buff_liuxue_v01"); + return buff; + } +} diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_BleedHeal.cs.meta b/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_BleedHeal.cs.meta new file mode 100644 index 00000000..7e1c007c --- /dev/null +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_BleedHeal.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 74356d9ae2e6b8d43ac7376113dd0ce8 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_CantShield.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_CantShield.cs new file mode 100644 index 00000000..05be8763 --- /dev/null +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_CantShield.cs @@ -0,0 +1,26 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.UI; + +public class Buff_CantShield : Buff +{ + + + + public override void SettleEnemy(EnemyNode enemyNode) + { + + + + } + + + public override Buff NewBuff(int value) + { + Buff buff = new Buff_CantShield(); + buff.value = value; + buff.icon = BuffDataManager.Instance.LoadImage(iconPath + "Sslx_Ui_Buff_liuxue_v01"); + return buff; + } +} diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_CantShield.cs.meta b/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_CantShield.cs.meta new file mode 100644 index 00000000..5b061c62 --- /dev/null +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_CantShield.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 8e55cb544c976bf469ae9f5b5364db7a +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_CantUserEffectCaed.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_CantUserEffectCaed.cs new file mode 100644 index 00000000..002ef720 --- /dev/null +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_CantUserEffectCaed.cs @@ -0,0 +1,21 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.UI; + +public class Buff_CantUserEffectCaed : Buff +{ + public override void Settle() + { + value = 0; + + } + + public override Buff NewBuff(int value) + { + Buff buff = new Buff_CantUserEffectCaed(); + buff.value = value; + buff.icon = BuffDataManager.Instance.LoadImage(iconPath + "Sslx_Ui_Buff_liuxue_v01"); + return buff; + } +} diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_CantUserEffectCaed.cs.meta b/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_CantUserEffectCaed.cs.meta new file mode 100644 index 00000000..eee9a54f --- /dev/null +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_CantUserEffectCaed.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 9276906ae80f6ed479f35ff7fc93b1d4 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_DeathMark.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_DeathMark.cs new file mode 100644 index 00000000..582ed6f4 --- /dev/null +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_DeathMark.cs @@ -0,0 +1,30 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.UI; + +public class Buff_DeathMark : Buff +{ + public override void Settle() + { + base.Settle(); + } + + + + public override void SettleEnemy(EnemyNode enemyNode) + { + + base.Settle(); + + } + + + public override Buff NewBuff(int value) + { + Buff buff = new Buff_DeathMark(); + buff.value = value; + buff.icon = BuffDataManager.Instance.LoadImage(iconPath + "downSpeed"); + return buff; + } +} diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_DeathMark.cs.meta b/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_DeathMark.cs.meta new file mode 100644 index 00000000..208948c6 --- /dev/null +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_DeathMark.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 0f08d5c214bfb424fad4804da01ad7c5 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_Disable.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_Disable.cs new file mode 100644 index 00000000..3c36def5 --- /dev/null +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_Disable.cs @@ -0,0 +1,30 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.UI; + +public class Buff_Disable : Buff +{ + public override void Settle() + { + base.Settle(); + } + + + + public override void SettleEnemy(EnemyNode enemyNode) + { + + base.Settle(); + + } + + + public override Buff NewBuff(int value) + { + Buff buff = new Buff_Disable(); + buff.value = value; + buff.icon = BuffDataManager.Instance.LoadImage(iconPath + "downSpeed"); + return buff; + } +} diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_Disable.cs.meta b/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_Disable.cs.meta new file mode 100644 index 00000000..2d6bcfbf --- /dev/null +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_Disable.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 230c71876e5a24d4a80cd6426f787df5 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_DyeingCardCostMinusOne.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_DyeingCardCostMinusOne.cs new file mode 100644 index 00000000..db64c809 --- /dev/null +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_DyeingCardCostMinusOne.cs @@ -0,0 +1,21 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.UI; + +public class Buff_DyeingCardCostMinusOne : Buff +{ + public override void Settle() + { + value = 0; + + } + + public override Buff NewBuff(int value) + { + Buff buff = new Buff_DyeingCardCostMinusOne(); + buff.value = value; + buff.icon = BuffDataManager.Instance.LoadImage(iconPath + "Sslx_Ui_Buff_liuxue_v01"); + return buff; + } +} diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_DyeingCardCostMinusOne.cs.meta b/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_DyeingCardCostMinusOne.cs.meta new file mode 100644 index 00000000..72bec3c6 --- /dev/null +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_DyeingCardCostMinusOne.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 05c4f66402c303a449ef37e1bad6ba3f +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_EmberDownOneTurn.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_EmberDownOneTurn.cs new file mode 100644 index 00000000..33ad2bcb --- /dev/null +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_EmberDownOneTurn.cs @@ -0,0 +1,25 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.UI; + +public class Buff_EmberDownOneTurn : Buff +{ + public override void Settle() + { + value=0; + } + + public override void SettleEnemy(EnemyNode enemyNode) + { + value = 0; + } + + public override Buff NewBuff(int value) + { + Buff buff = new Buff_EmberDownOneTurn(); + buff.value = value; + buff.icon = BuffDataManager.Instance.LoadImage(iconPath + "Sslx_Ui_Buff_nuhuo1_v01"); + return buff; + } +} diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_EmberDownOneTurn.cs.meta b/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_EmberDownOneTurn.cs.meta new file mode 100644 index 00000000..ea9cff0e --- /dev/null +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_EmberDownOneTurn.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 7f07683220b4e6a419116fcf83af040f +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_NextCardCostHp.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_NextCardCostHp.cs new file mode 100644 index 00000000..6d5284f9 --- /dev/null +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_NextCardCostHp.cs @@ -0,0 +1,21 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.UI; + +public class Buff_NextCardCostHp : Buff +{ + public override void Settle() + { + value = 0; + + } + + public override Buff NewBuff(int value) + { + Buff buff = new Buff_NextCardCostHp(); + buff.value = value; + buff.icon = BuffDataManager.Instance.LoadImage(iconPath + "Sslx_Ui_Buff_liuxue_v01"); + return buff; + } +} diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_NextCardCostHp.cs.meta b/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_NextCardCostHp.cs.meta new file mode 100644 index 00000000..41de9500 --- /dev/null +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_NextCardCostHp.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 1155e91d9a4d7f644943511072a0f9eb +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_NextCardCostMinusOne.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_NextCardCostMinusOne.cs new file mode 100644 index 00000000..413d96fc --- /dev/null +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_NextCardCostMinusOne.cs @@ -0,0 +1,21 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.UI; + +public class Buff_NextCardCostMinusOne : Buff +{ + public override void Settle() + { + value = 0; + + } + + public override Buff NewBuff(int value) + { + Buff buff = new Buff_NextCardCostMinusOne(); + buff.value = value; + buff.icon = BuffDataManager.Instance.LoadImage(iconPath + "Sslx_Ui_Buff_liuxue_v01"); + return buff; + } +} diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_NextCardCostMinusOne.cs.meta b/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_NextCardCostMinusOne.cs.meta new file mode 100644 index 00000000..1c2d5c3d --- /dev/null +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_NextCardCostMinusOne.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: bc6c039d1d5ebaf4d81fa8c9a0159602 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_NextDyeingCardCostZero.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_NextDyeingCardCostZero.cs new file mode 100644 index 00000000..6bf0ac08 --- /dev/null +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_NextDyeingCardCostZero.cs @@ -0,0 +1,21 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.UI; + +public class Buff_NextDyeingCardCostZero : Buff +{ + public override void Settle() + { + //value = 0; + + } + + public override Buff NewBuff(int value) + { + Buff buff = new Buff_NextDyeingCardCostZero(); + buff.value = value; + buff.icon = BuffDataManager.Instance.LoadImage(iconPath + "Sslx_Ui_Buff_liuxue_v01"); + return buff; + } +} diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_NextDyeingCardCostZero.cs.meta b/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_NextDyeingCardCostZero.cs.meta new file mode 100644 index 00000000..56c38e65 --- /dev/null +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_NextDyeingCardCostZero.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 09f8fcaca70d78544ade8ccb503a8c61 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_NextDyeingCardRangeAddTwo.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_NextDyeingCardRangeAddTwo.cs new file mode 100644 index 00000000..7ce551cb --- /dev/null +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_NextDyeingCardRangeAddTwo.cs @@ -0,0 +1,21 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.UI; + +public class Buff_NextDyeingCardRangeAddTwo : Buff +{ + public override void Settle() + { + value = 0; + + } + + public override Buff NewBuff(int value) + { + Buff buff = new Buff_NextDyeingCardRangeAddTwo(); + buff.value = value; + buff.icon = BuffDataManager.Instance.LoadImage(iconPath + "Sslx_Ui_Buff_liuxue_v01"); + return buff; + } +} diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_NextDyeingCardRangeAddTwo.cs.meta b/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_NextDyeingCardRangeAddTwo.cs.meta new file mode 100644 index 00000000..5759b73a --- /dev/null +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_NextDyeingCardRangeAddTwo.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: e9ce019f8ded4f548bcf23ebf202bc20 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_NextEffectCardDoubleSettle.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_NextEffectCardDoubleSettle.cs new file mode 100644 index 00000000..3c1f3d89 --- /dev/null +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_NextEffectCardDoubleSettle.cs @@ -0,0 +1,22 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.UI; + +public class Buff_NextEffectCardDoubleSettle : Buff +{ + public override void Settle() + { + value = 0; + + } + + + public override Buff NewBuff(int value) + { + Buff buff = new Buff_NextEffectCardDoubleSettle(); + buff.value = value; + buff.icon = BuffDataManager.Instance.LoadImage(iconPath + "Sslx_Ui_Buff_maozixifa_v01"); + return buff; + } +} diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_NextEffectCardDoubleSettle.cs.meta b/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_NextEffectCardDoubleSettle.cs.meta new file mode 100644 index 00000000..fa400258 --- /dev/null +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_NextEffectCardDoubleSettle.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: bcc5d5190b465b9418756386128298a3 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Card/CardDrag.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Card/CardDrag.cs index 0e30fac9..cd25f55f 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scripts/Card/CardDrag.cs +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Card/CardDrag.cs @@ -261,7 +261,7 @@ public class CardDrag : MonoBehaviour, IBeginDragHandler, IDragHandler, IEndDrag //鿨ƵķǷͷ private void costCheck() { - switch (cardEntity.cardOriginalData.costType) + switch (cardEntity.currentCostType) { case Name.CostType.energy: energyCostCheck(); @@ -274,15 +274,17 @@ public class CardDrag : MonoBehaviour, IBeginDragHandler, IDragHandler, IEndDrag break; case Name.CostType.node: break; - - + } + if (Usermanager.playerAbnormalCondition.ContainsKey(AbnormalCondition.cantUserEffectCaed) && cardEntity.cardOriginalData.CardType.Equals(Name.CardType.effect)) + { + cardEntity.canUse = false; } } private void energyCostCheck() { - int trueCost = cardEntity.cardOriginalData.Cost; + int trueCost = cardEntity.currentCost; if (MapUnityManager.Instance.isPlayerOn(Name.NodeColor.Black)) { trueCost++; @@ -495,16 +497,8 @@ public class CardDrag : MonoBehaviour, IBeginDragHandler, IDragHandler, IEndDrag currentNode = raycastHit.collider.transform.GetComponent(); //µ÷ΧԤ //GameManager.Instance.player.StepPreviewInfluencedNode(cardEntity.cardOriginalData.CastingRange); - int castRange = GameManager.Instance.playerState.castRange; - if (MapUnityManager.Instance.isPlayerOn(Name.NodeColor.Green)) - { - castRange++; - } - if (Usermanager.playerAbnormalCondition.ContainsKey(AbnormalCondition.tempCastRange)) - { - castRange+= Usermanager.playerAbnormalCondition[AbnormalCondition.tempCastRange].value; - } - setCastingRangePreview(castRange); + + setCastingRangePreview(); //ԤӰ췶Χ if (currentNode.influenced) { @@ -519,7 +513,7 @@ public class CardDrag : MonoBehaviour, IBeginDragHandler, IDragHandler, IEndDrag //ͿɫԤ // SettlementManager.Instance.PreviewSwitchColor(cardEntity.cardOriginalData, currentNode); //µؿ - SettlementManager.Instance.PreviewColorMapUnity(cardEntity.cardOriginalData, currentNode); + //SettlementManager.Instance.PreviewColorMapUnity(cardEntity.cardOriginalData, currentNode); } //Ч÷ΧڹѪ @@ -530,14 +524,43 @@ public class CardDrag : MonoBehaviour, IBeginDragHandler, IDragHandler, IEndDrag } - private void setCastingRangePreview(int castRange) + private void setCastingRangePreview() { + int castRange = GameManager.Instance.playerState.castRange; + if (MapUnityManager.Instance.isPlayerOn(Name.NodeColor.Green)) + { + castRange++; + } + if (Usermanager.playerAbnormalCondition.ContainsKey(AbnormalCondition.tempCastRange)) + { + castRange += Usermanager.playerAbnormalCondition[AbnormalCondition.tempCastRange].value; + } + if (cardEntity.cardOriginalData.TrueFunctionVal.ContainsKey(CardFunction.castRangePlusOne)) + { + castRange += 1; + } + if (Usermanager.playerAbnormalCondition.ContainsKey(AbnormalCondition.nextDyeingCardRangeAddTwo)&&cardEntity.cardOriginalData.CardType.Equals(Name.CardType.dyeing)) + { + castRange += 2; + } + if (LegacyManager.Instance.isUseful(Name.Legacy.LegacyNode_Bipod)) + { + castRange += 4; + } foreach (MapUnity mapUnity in MapUnityManager.Instance.castPool) { mapUnity.influenced = false; } MapUnityManager.Instance.castPool.Clear(); - MapUnityManager.Instance.getCastPool(castRange); + if (cardEntity.cardOriginalData.TrueFunctionVal.ContainsKey(CardFunction.infCastRange)) + { + MapUnityManager.Instance.getCastPoolForInfRange(); + } + else + { + MapUnityManager.Instance.getCastPool(castRange); + } + } @@ -571,7 +594,7 @@ public class CardDrag : MonoBehaviour, IBeginDragHandler, IDragHandler, IEndDrag //Ч÷ΧڹѪ EnemyManager.Instance.ShowExpHp_Observer(cardEntity.influencePreviewPool); //Ϳɫʺ͵ؿͳԤ - SettlementManager.Instance.PreviewColorMapUnity(cardEntity.cardOriginalData, GameManager .Instance .playerOn ); + //SettlementManager.Instance.PreviewColorMapUnity(cardEntity.cardOriginalData, GameManager .Instance .playerOn ); } public void OnDrag(PointerEventData eventData) diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Card/CardEntity.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Card/CardEntity.cs index 2252af20..6701da35 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scripts/Card/CardEntity.cs +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Card/CardEntity.cs @@ -97,10 +97,10 @@ public class CardEntity : MonoBehaviour public Animator animator; [Header("Ʊ߿ؼ")] public Animator borderAnim; - public Dictionary> cardFunToLose = new Dictionary>(); [Header("Ʒñ仯")] int lastCost; public int currentCost; + public string currentCostType; private void Start() { currentCost = cardOriginalData.Cost; @@ -171,7 +171,7 @@ public class CardEntity : MonoBehaviour //Debug.Log(cardId + "-" + CardOriginalDataList.Instance.cardOriginalDataList[cardId]); cardOriginalData = CardOriginalDataList.Instance.existCardOriginalDataList[cardId]; settleForStart(SettlementManager.settleTurn); - createCardUI(needTrueFun); + //createCardUI(needTrueFun); //createCardDescription(); createCardName(); //createCardCost(); @@ -362,7 +362,7 @@ public class CardEntity : MonoBehaviour public void createCardImageTest() { - MapUnity currentNode = CardPictureManager.Instance.ToolX[3].Y[3]; + MapUnity currentNode = CardPictureManager.Instance.ToolX[4].Y[4]; Debug.Log("card"); CardManager.setCardImageTest(cardOriginalData, 90.0f, currentNode,this); } @@ -380,19 +380,9 @@ public class CardEntity : MonoBehaviour } else {*/ - currentCost = cardOriginalData.Cost; - if (MapUnityManager.Instance.isPlayerOn(Name.NodeColor.Black)) - { - currentCost += 1; - cost.text = currentCost.ToString(); - - } - else - { - cost.text = currentCost.ToString(); - } - - if(currentCost!=lastCost ) + (currentCost, currentCostType)=CardResourcesManager.Instance.getCardCost(cardOriginalData); + cost.text = currentCost.ToString(); + if (currentCost!=lastCost ) { lastCost = currentCost; CheckUse(); @@ -589,11 +579,11 @@ public class CardEntity : MonoBehaviour //Debug.Log("cardId" + cardOriginalData.CardId + "" + cardOriginalData.TrueFunctionVal.ElementAt(i).Key + "ֵ" + cardOriginalData.TrueFunctionVal.ElementAt(i).Value); //Debug.Log("originFunctionValkey"+ fun); //Debug.Log("originFunctionValvalue" + cardOriginalData.originFunctionVal.ElementAt(i).Value); - if (cardOriginalData.testTrueFunctionVal.Keys.Contains(fun)) + if (cardOriginalData.TrueFunctionVal.Keys.Contains(fun)) { keyChild.SetActive(true); valueChild.SetActive(true); - description.text = cardOriginalData.testTrueFunctionVal[fun]; + description.text = cardOriginalData.TrueFunctionVal[fun]; } else @@ -781,11 +771,37 @@ public class CardEntity : MonoBehaviour private void checkAndUpdateCondition() { -/* if (cardOriginalData.CardType != Name.CardType.dyeing) + /* if (cardOriginalData.CardType != Name.CardType.dyeing) + { + return; + }*/ + if (cardOriginalData.TrueFunctionVal != null) { - return; - }*/ - cardOriginalData.testTrueFunctionVal.Clear(); + cardOriginalData.TrueFunctionVal.Clear(); + } + foreach (KeyValuePair kvp in cardOriginalData.commonFunctionVal) + { + if (int.TryParse(kvp.Value, out int newValue)) + { + MathTool.AddOrUpdateDictionary(cardOriginalData.TrueFunctionVal, kvp.Key, kvp.Value); + } + else + { + if (Name.Color.AllColor.Contains(kvp.Value)) + { + MathTool.AddOrUpdateDictionary(cardOriginalData.TrueFunctionVal, kvp.Key, getNodeTools.getNodesCount(kvp.Value).ToString()); + } + else + { + MathTool.AddOrUpdateDictionary(cardOriginalData.TrueFunctionVal, kvp.Key, kvp.Value); + } + + } + } + + List allMatchList = new List(); + int exclusiveConditionIndex = 0; + bool canexclusiveCondition=false; for (int i = 0; i < cardOriginalData.conditionAndFunctionVal.Count; i++) { bool isAllMatch=true; @@ -817,69 +833,44 @@ public class CardEntity : MonoBehaviour } } Image condition = conditionList[i].GetComponent(); + allMatchList.Add(isAllMatch); if (isAllMatch) { - string[] fun = kvp.Value.Item1.Split("_"); - string[] vals = kvp.Value.Item2.Split("_"); - for (int j = 0; j < fun.Length; j++) - { - if (int.TryParse(vals[j], out int newValue)) - { - MathTool.AddOrUpdateDictionary(cardOriginalData.testTrueFunctionVal, fun[j], vals[j]); - } - else - { - MathTool.AddOrUpdateDictionary(cardOriginalData.testTrueFunctionVal, fun[j], getNodeTools.getNodesCount(vals[j]).ToString()); - } - } - string value = kvp.Value.Item2; - - + exclusiveConditionIndex = i; + canexclusiveCondition=true; condition.sprite = successCondition; - cardFunToLose.Remove( kvp.Key); } else { condition.sprite = unsuccessCondition; - cardFunToLose.TryAdd(kvp.Key, kvp.Value); } } - - /*cardOriginalData.TrueFunctionVal = cardOriginalData.originFunctionVal.ToDictionary(entry => entry.Key, entry => entry.Value); - Dictionary cardFunToLoseDict=new Dictionary(); - foreach (var kvp in cardFunToLose) + string[] fun = cardOriginalData.conditionAndFunctionVal.ElementAt(exclusiveConditionIndex).Value.Item1.Split("_"); + string[] vals = cardOriginalData.conditionAndFunctionVal.ElementAt(exclusiveConditionIndex).Value.Item2.Split("_"); + if (canexclusiveCondition) { - string[] fun=kvp.Value.Item1.Split("_"); - string[] vals = kvp.Value.Item2.Split("_"); for (int j = 0; j < fun.Length; j++) { - MathTool.AddOrUpdateDictionary(cardFunToLoseDict, fun[j], vals[j]); - } - - } - foreach (var kvp in cardFunToLoseDict) - { - string tupleKey = kvp.Key; // A е Tuple ȡ Item1 Ϊ B ļ - string tupleValue = kvp.Value; // A е Tuple ȡ Item2 Ϊ - if (cardOriginalData.TrueFunctionVal.ContainsKey(tupleKey)) - { - // ֵ B ֵ A Tuple Item2 - if (int.TryParse(cardOriginalData.TrueFunctionVal[tupleKey], out int bValue) && - int.TryParse(tupleValue, out int aValue2)) + if (int.TryParse(vals[j], out int newValue)) { - // µֵֵ B еֵȥ A Tuple е Item2 ֵ - int newValue = bValue - aValue2; - - // ֵ C еֵ - cardOriginalData.TrueFunctionVal[tupleKey] = newValue.ToString(); + MathTool.AddOrUpdateDictionary(cardOriginalData.TrueFunctionVal, fun[j], vals[j]); } else { - Console.WriteLine($" '{tupleKey}' ֵЧ޷¡"); + if (Name.Color.AllColor.Contains(vals[j])) + { + MathTool.AddOrUpdateDictionary(cardOriginalData.TrueFunctionVal, fun[j], getNodeTools.getNodesCount(vals[j]).ToString()); + } + else + { + MathTool.AddOrUpdateDictionary(cardOriginalData.TrueFunctionVal, fun[j], vals[j]); + } } } - }*/ - resultsScreenCal(cardDataSummary); + } + + + //resultsScreenCal(cardDataSummary); } private void createCardRelease() { diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Card/CardOriginalData.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Card/CardOriginalData.cs index b78fde10..b6f97d5a 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scripts/Card/CardOriginalData.cs +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Card/CardOriginalData.cs @@ -20,12 +20,14 @@ public class CardOriginalData : System.Object private int castingRange; private string effectRange; - + //һ private int isDisposable; private Dictionary trueFunctionVal; - public Dictionary testTrueFunctionVal; + public Dictionary showFunctionVal; + + public Dictionary commonFunctionVal; private string cardType; diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Card/CardOriginalDataList.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Card/CardOriginalDataList.cs index 267a5fd7..0a32665f 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scripts/Card/CardOriginalDataList.cs +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Card/CardOriginalDataList.cs @@ -28,7 +28,7 @@ public class CardOriginalDataList : Singleton private void OnEnable() { - cardOriginalDataList = ReadExcelForDyeingCard("card_data_4.csv"); + cardOriginalDataList = ReadExcelForDyeingCard("card_data_5.csv"); effectCardOriginalDataList = ReadExcelForEffectCard("card_data_effect_4.csv"); itemCardOriginalDataList = ReadExcelForItemCard("card_data_item_4.csv"); //categorizeCardsByRarity(); @@ -210,7 +210,8 @@ public class CardOriginalDataList : Singleton //cardOriginalData.ChineseName = values[1]; cardOriginalData.costType = values[1]; cardOriginalData.Cost = int.Parse(values[2]); - //cardOriginalData.Rarity = int.Parse(values[3]); + cardOriginalData.Rarity = int.Parse(values[12]); + cardOriginalData.ChineseName = values[11]; cardOriginalData.CastingRange = int.Parse(values[3]); cardOriginalData.EffectRange = values[4]; //cardOriginalData.IsDisposable = int.Parse(values[6]) == 1; @@ -218,8 +219,8 @@ public class CardOriginalDataList : Singleton cardOriginalData.nodesColor = values[9].Split(";"); cardOriginalData.conditionAndFunctionVal = new Dictionary>(); cardOriginalData.TrueFunctionVal = new Dictionary(); - cardOriginalData.testTrueFunctionVal = new Dictionary(); cardOriginalData.originFunctionVal = new HashSet(); + cardOriginalData.commonFunctionVal = new Dictionary(); cardOriginalData.CardType = Name.CardType.dyeing; cardOriginalData.ImgPath = values[10]; for (int i = 0; i < cardOriginalData.nodesMark.Length; i++) @@ -246,43 +247,44 @@ public class CardOriginalDataList : Singleton cardOriginalData.cardImageMark = new HashSet(); //CardOriginalData cardOriginalData = CardOriginalData.Instance; cardOriginalData.CardId = values[0]; - //cardOriginalData.ChineseName = values[1]; + cardOriginalData.ChineseName = values[13]; cardOriginalData.costType = values[1]; cardOriginalData.Cost = int.Parse(values[2]); - //cardOriginalData.Rarity = int.Parse(values[3]); - cardOriginalData.CastingRange = int.Parse(values[8]); + cardOriginalData.Rarity = int.Parse(values[11]); //cardOriginalData.EffectRange = values[3]; - //cardOriginalData.IsDisposable = int.Parse(values[6]) == 1; - cardOriginalData.nodesMark = values[6].Split(";"); + cardOriginalData.IsDisposable = int.Parse(values[12]) == 1; + cardOriginalData.nodesMark = values[8].Split(";"); //cardOriginalData.nodesColor = values[8].Split(";"); cardOriginalData.conditionAndFunctionVal = new Dictionary>(); + cardOriginalData.commonFunctionVal = new Dictionary(); cardOriginalData.TrueFunctionVal = new Dictionary(); - cardOriginalData.testTrueFunctionVal = new Dictionary(); cardOriginalData.originFunctionVal = new HashSet(); cardOriginalData.CardType = Name.CardType.effect; - cardOriginalData.ImgPath = values[7]; - cardOriginalData.CastingRange = int.Parse(values[8]); - cardOriginalData.TrueFunctionVal = new Dictionary(); + cardOriginalData.ImgPath = values[9]; + cardOriginalData.CastingRange = int.Parse(values[10]); cardOriginalData.originFunctionVal = new HashSet(); //cardOriginalData.testTrueFunctionVal = new Dictionary(); - string[] condition = values[3].Split(";"); - string[] function = values[4].Split(";"); - string[] functionVal = values[5].Split(";"); - /*string[] advantagefunction = values[9].Split(";"); - string[] advantagefunctionVal = values[10].Split(";");*/ - //cardOriginalData.FunctionVal = new Dictionary(); - //cardOriginalData.AdvantageFunctionVal = new Dictionary(); + string[] condition = values[5].Split(";"); + string[] function = values[6].Split(";"); + string[] functionVal = values[7].Split(";"); + string[] commonFunction = values[3].Split(";"); + string[] commonFunctionVal = values[4].Split(";"); for (int i = 0; i < function.Length; i++) { cardOriginalData.conditionAndFunctionVal.Add(condition[i], new Tuple(function[i], functionVal[i])); } - //getDictionaryFromString(values, cardOriginalData); - /* for (int i = 0; i < function.Length; i++) + for (int i = 0; i < commonFunction.Length; i++) { - cardOriginalData.originFunctionVal.Add(function[i]); - cardOriginalData.TrueFunctionVal.Add(function[i], functionVal[i]); - cardOriginalData.testTrueFunctionVal.Add(function[i], functionVal[i]); - }*/ + cardOriginalData.commonFunctionVal.Add(commonFunction[i],commonFunctionVal[i]); + //Debug.Log("TrueFunctionVal" + commonFunction[i] + "+" + commonFunctionVal[i]); + } + //getDictionaryFromString(values, cardOriginalData); + /* for (int i = 0; i < function.Length; i++) + { + cardOriginalData.originFunctionVal.Add(function[i]); + cardOriginalData.TrueFunctionVal.Add(function[i], functionVal[i]); + cardOriginalData.testTrueFunctionVal.Add(function[i], functionVal[i]); + }*/ return cardOriginalData; } @@ -312,7 +314,7 @@ public class CardOriginalDataList : Singleton string[] functionVal = values[4].Split(";"); cardOriginalData.TrueFunctionVal = new Dictionary(); cardOriginalData.originFunctionVal = new HashSet(); - cardOriginalData.testTrueFunctionVal = new Dictionary(); + cardOriginalData.TrueFunctionVal = new Dictionary(); cardOriginalData.IsDisposable=true; //getDictionaryFromString(values, cardOriginalData); @@ -320,7 +322,6 @@ public class CardOriginalDataList : Singleton { cardOriginalData.originFunctionVal.Add(function[i]); cardOriginalData.TrueFunctionVal.Add(function[i], functionVal[i]); - cardOriginalData.testTrueFunctionVal.Add(function[i], functionVal[i]); } return cardOriginalData; } diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Card/CardPictureManager.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Card/CardPictureManager.cs index 5b141498..99b82363 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scripts/Card/CardPictureManager.cs +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Card/CardPictureManager.cs @@ -30,7 +30,7 @@ public class CardPictureManager : Singleton yield return StartCoroutine(SetUpMapUnityForTool()); yield return StartCoroutine(SetUpMapUnityForCubeForTool()); createCameraAboveObject(ToolX[3].Y[3].gameObject, 10.0f, 0); - CardManager.createCardImageMap(); + //CardManager.createCardImageMap(); } IEnumerator MapGenerateTest() { diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Card/CardResourcesManager.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Card/CardResourcesManager.cs index 91cd353e..601d0470 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scripts/Card/CardResourcesManager.cs +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Card/CardResourcesManager.cs @@ -82,6 +82,96 @@ public class CardResourcesManager : Singleton return System.Text.RegularExpressions.Regex.IsMatch(input, @"^[><=]|\d+$"); } + public (int trueCost, string trueCostType) getCardCost(CardOriginalData cardOriginalData) + { + int cost = cardOriginalData.Cost; + string costType=cardOriginalData.costType.Substring(0); + if (MapUnityManager.Instance.isPlayerOn(Name.NodeColor.Black)) + { + cost += 1; + } + if (cardOriginalData.TrueFunctionVal.ContainsKey(CardFunction.reduceCost)) + { + cost -= int.Parse(cardOriginalData.TrueFunctionVal[CardFunction.reduceCost]); + } + if (Usermanager.playerAbnormalCondition.ContainsKey(AbnormalCondition.nextCardCostMinusOne)) + { + cost -= 1; + } + if (Usermanager.playerAbnormalCondition.ContainsKey(AbnormalCondition.dyeingCardCostMinusOne)&&cardOriginalData.CardType.Equals(Name.CardType.dyeing)) + { + cost -= 1; + } + if (LegacyManager.Instance.isUseful(Name.Legacy.LegacyNode_Prism) && cardOriginalData.CardType.Equals(Name.CardType.dyeing)) + { + cost -= 1; + } + if (Usermanager.playerAbnormalCondition.ContainsKey(AbnormalCondition.nextCardCostHp)) + { + costType=Name.CostType.health; + } + if (LegacyManager.Instance.isUseful(Name.Legacy.LegacyNode_FreeBullet) && cardOriginalData.CardType.Equals(Name.CardType.dyeing)) + { + cost = 0; + } + if (LegacyManager.Instance.isUseful(Name.Legacy.LegacyNode_SpeedLoader) && cardOriginalData.CardType.Equals(Name.CardType.effect)) + { + cost = 0; + LegacyManager.Instance.tryResetCount(Name.Legacy.LegacyNode_SpeedLoader); + } + MathTool.keepNature(ref cost); + return (cost, costType); + } + + public (int trueCost, string trueCostType) getCardCostForSettle(CardOriginalData cardOriginalData) + { + int cost = cardOriginalData.Cost; + string costType = cardOriginalData.costType.Substring(0); + if (MapUnityManager.Instance.isPlayerOn(Name.NodeColor.Black)) + { + cost += 1; + } + if (cardOriginalData.TrueFunctionVal.ContainsKey(CardFunction.reduceCost)) + { + cost -= int.Parse(cardOriginalData.TrueFunctionVal[CardFunction.reduceCost]); + } + if (Usermanager.playerAbnormalCondition.ContainsKey(AbnormalCondition.nextCardCostMinusOne)) + { + cost -= 1; + Usermanager.playerAbnormalCondition[AbnormalCondition.nextCardCostMinusOne].value -= 1; + } + if (Usermanager.playerAbnormalCondition.ContainsKey(AbnormalCondition.dyeingCardCostMinusOne) && cardOriginalData.CardType.Equals(Name.CardType.dyeing)) + { + cost -= 1; + } + if (LegacyManager.Instance.isUseful(Name.Legacy.LegacyNode_Prism) && cardOriginalData.CardType.Equals(Name.CardType.dyeing)) + { + cost -=1; + } + if (Usermanager.playerAbnormalCondition.ContainsKey(AbnormalCondition.nextCardCostHp)) + { + costType = Name.CostType.health; + Usermanager.playerAbnormalCondition[AbnormalCondition.nextCardCostHp].value -= 1; + } + if (Usermanager.playerAbnormalCondition.ContainsKey(AbnormalCondition.nextDyeingCardCostZero) && cardOriginalData.CardType.Equals(Name.CardType.dyeing)) + { + cost = 0; + Usermanager.playerAbnormalCondition[AbnormalCondition.nextDyeingCardCostZero].value -= 1; + } + if(LegacyManager.Instance.isUseful(Name.Legacy.LegacyNode_FreeBullet)&& cardOriginalData.CardType.Equals(Name.CardType.dyeing)) + { + cost = 0; + LegacyManager.Instance.tryResetCount(Name.Legacy.LegacyNode_FreeBullet); + } + if (LegacyManager.Instance.isUseful(Name.Legacy.LegacyNode_SpeedLoader) && cardOriginalData.CardType.Equals(Name.CardType.effect)) + { + cost = 0; + LegacyManager.Instance.tryResetCount(Name.Legacy.LegacyNode_SpeedLoader); + } + Usermanager.Instance.AbnormalConditionEndCheck(); + MathTool.keepNature(ref cost); + return (cost, costType); + } public void getImage(GameObject input,string imageString) { Image image = input.GetComponent(); diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Card/TurnMaster.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Card/TurnMaster.cs index 6cb21184..17506637 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scripts/Card/TurnMaster.cs +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Card/TurnMaster.cs @@ -1,9 +1,13 @@ +using System; using System.Collections; using System.Collections.Generic; +using System.Text.RegularExpressions; using Unity.VisualScripting; using UnityEngine; using UnityEngine.Playables; using UnityEngine.UI; +using UnityEngine.Windows; +using static Name; public class TurnMaster : Singleton { @@ -83,7 +87,9 @@ public class TurnMaster : Singleton Usermanager.Instance.PlayerTurnBeginSettle(); //ָcost restoreResource(settleTurn); - + // + ResetLegacy(); + //ָ GameManager.Instance.playerState.currentStepRange = Usermanager.Instance.StepRangeCalculation(GameManager.Instance.playerState.maxStepRange); //жǷʹħн @@ -210,6 +216,11 @@ public class TurnMaster : Singleton { GameManager.Instance.servantState.currentStepRange = GameManager.Instance.servantState.maxStepRange; } + + public void ResetLegacy() + { + LegacyManager.Instance.tryResetCount(Name.Legacy.LegacyNode_LightningBoots); + } public void CloseSkillUI() { GameManager.Instance.servant .SkillUI.SetActive(false); @@ -248,10 +259,10 @@ public class TurnMaster : Singleton { /* totalCost = Usermanager.Instance.totalCost; Usermanager.Instance.currentCost = totalCost;*/ - if (LegacyManager.Instance.relicClassNameList.Contains(Name.Legacy.LegacyNode_AncientSilverCoin) && - settleTurn == 0) + if (LegacyManager.Instance.isUseful(Name.Legacy.LegacyNode_PerpetualMotionPump)) { - GameManager.Instance.playerState.currentCost = GameManager.Instance.playerState.maxCost+1; + int lastRoundCost = GameManager.Instance.playerState.currentCost; + GameManager.Instance.playerState.currentCost = GameManager.Instance.playerState.maxCost+ lastRoundCost; } else { @@ -299,7 +310,7 @@ public class TurnMaster : Singleton { tureDrawCardsNum-=2; }*/ - MathTool.keepNature(tureDrawCardsNum); + MathTool.keepNature(ref tureDrawCardsNum); Debug.Log("鿨:"+tureDrawCardsNum); // ȴֱǰ֡ yield return new WaitForEndOfFrame(); @@ -426,6 +437,188 @@ public class TurnMaster : Singleton yield break; } + public IEnumerator drawAndCopyOneCard() + { + int drawNum = 1; + GameManager.Instance.onDraw = true; + + int handCardCount = handCard.cardEntityList.Count; + int actualCardsToDraw = Mathf.Min(handCard.maxHandCard - handCardCount, drawNum); + + CardActiveSort.Instance.drawCardCount = actualCardsToDraw; + yield return CardActiveSort.Instance.StartCoroutine(CardActiveSort.Instance.SortOldCardPointWithDrawCards()); + Debug.Log("鿨1"); + for (int i = handCardCount; i < handCardCount + actualCardsToDraw; i++) + { + + if (cardDeck.cardList.Count > 0) + { + createCard(i); + } + else if (usedCard.usedCardList.Count > 0) + { + //ϴƼ + for (int c = 0; c < usedCard.usedCardList.Count; c++) + { + cardDeck.cardList.Add(usedCard.usedCardList[c]); + cardDeck.cardList.Shuffle(); + } + usedCard.usedCardList.Clear(); + + createCard(i); + } + yield return new WaitForSeconds(0.1f); + } + + yield return CardActiveSort.Instance.StartCoroutine(CardActiveSort.Instance.ReflashCardPointWithDrawCards()); + yield return StartCoroutine(copyNewestCard()); + yield break; + } + + public IEnumerator copyNewestCard() + { + + int handCardCount = handCard.cardEntityList.Count; + if (handCardCount == handCard.maxHandCard) + { + yield return null; + } + string cardId= handCard.cardEntityList[handCardCount-1].cardOriginalData.CardId; + copyCard(handCardCount + 1,cardId); + yield return CardActiveSort.Instance.StartCoroutine(CardActiveSort.Instance.ReflashCardPointWithDrawCards()); + yield break; + } + + public IEnumerator drawDyeingCards(int drawNum) + { + int dyeingCardCount = 0; + List dyeingCardIndexList= new List(); + List dyeingCardList = new List(); + + for (int i = 0; i < cardDeck.cardList.Count; i++) + { + if (System.Text.RegularExpressions.Regex.IsMatch(cardDeck.cardList[i], Name.Regex.pattern1xxx)) + { + dyeingCardCount++; + dyeingCardIndexList.Add(i); + //dyeingCardList.Add(cardDeck.cardList[i]); + } + } + GameManager.Instance.onDraw = true; + int handCardCount = handCard.cardEntityList.Count; + int drawNumA = Mathf.Min(dyeingCardIndexList.Count, drawNum); + int actualCardsToDraw = Mathf.Min(handCard.maxHandCard - handCardCount, drawNumA); + if (actualCardsToDraw == 0) + { + yield break; + } + //鿨б + dyeingCardIndexList.Sort((a, b) => b.CompareTo(a)); + int count = Math.Min(actualCardsToDraw, dyeingCardIndexList.Count); + for (int i = 0; i < count; i++) + { + int index = dyeingCardIndexList[i]; + if (index >= 0 && index < cardDeck.cardList.Count) + { + dyeingCardList.Add(cardDeck.cardList[index]); // ƳԪ + cardDeck.cardList.RemoveAt(index); // ƳԪ + } + } + cardDeck.cardList.InsertRange(0, dyeingCardList); + CardActiveSort.Instance.drawCardCount = actualCardsToDraw; + yield return CardActiveSort.Instance.StartCoroutine(CardActiveSort.Instance.SortOldCardPointWithDrawCards()); + Debug.Log("鿨1"); + for (int i = handCardCount; i < handCardCount + actualCardsToDraw; i++) + { + + if (cardDeck.cardList.Count > 0) + { + createCard(i); + } + else if (usedCard.usedCardList.Count > 0) + { + //ϴƼ + for (int c = 0; c < usedCard.usedCardList.Count; c++) + { + cardDeck.cardList.Add(usedCard.usedCardList[c]); + cardDeck.cardList.Shuffle(); + } + usedCard.usedCardList.Clear(); + + createCard(i); + } + yield return new WaitForSeconds(0.1f); + } + + yield return CardActiveSort.Instance.StartCoroutine(CardActiveSort.Instance.ReflashCardPointWithDrawCards()); + yield break; + } + + public IEnumerator drawEffectCards(int drawNum) + { + int effectCardCount = 0; + List effectCardIndexList = new List(); + List effectCardList = new List(); + + for (int i = 0; i < cardDeck.cardList.Count; i++) + { + if (System.Text.RegularExpressions.Regex.IsMatch(cardDeck.cardList[i], Name.Regex.pattern2xxx)) + { + effectCardCount++; + effectCardIndexList.Add(i); + //dyeingCardList.Add(cardDeck.cardList[i]); + } + } + GameManager.Instance.onDraw = true; + int handCardCount = handCard.cardEntityList.Count; + int drawNumA = Mathf.Min(effectCardIndexList.Count, drawNum); + int actualCardsToDraw = Mathf.Min(handCard.maxHandCard - handCardCount, drawNumA); + if (actualCardsToDraw == 0) + { + yield break; + } + //鿨б + effectCardIndexList.Sort((a, b) => b.CompareTo(a)); + int count = Math.Min(actualCardsToDraw, effectCardIndexList.Count); + for (int i = 0; i < count; i++) + { + int index = effectCardIndexList[i]; + if (index >= 0 && index < cardDeck.cardList.Count) + { + effectCardList.Add(cardDeck.cardList[index]); // ƳԪ + cardDeck.cardList.RemoveAt(index); // ƳԪ + } + } + cardDeck.cardList.InsertRange(0, effectCardList); + CardActiveSort.Instance.drawCardCount = actualCardsToDraw; + yield return CardActiveSort.Instance.StartCoroutine(CardActiveSort.Instance.SortOldCardPointWithDrawCards()); + Debug.Log("鿨1"); + for (int i = handCardCount; i < handCardCount + actualCardsToDraw; i++) + { + + if (cardDeck.cardList.Count > 0) + { + createCard(i); + } + else if (usedCard.usedCardList.Count > 0) + { + //ϴƼ + for (int c = 0; c < usedCard.usedCardList.Count; c++) + { + cardDeck.cardList.Add(usedCard.usedCardList[c]); + cardDeck.cardList.Shuffle(); + } + usedCard.usedCardList.Clear(); + + createCard(i); + } + yield return new WaitForSeconds(0.1f); + } + + yield return CardActiveSort.Instance.StartCoroutine(CardActiveSort.Instance.ReflashCardPointWithDrawCards()); + yield break; + } + public void createCard(int i) { GameObject cardPrefab; @@ -463,6 +656,43 @@ public class TurnMaster : Singleton cardSmall.SetDestinationWithDrawCard(CardActiveSort.Instance.newPointList[i]); } + public void copyCard(int i,string cardId) + { + GameObject cardPrefab; + cardPrefab = Instantiate(cardDeck.rareCardPrefab, handCard.cardPanle.transform); + //int cardRarity = CardOriginalDataList.Instance.cardOriginalDataList[cardDeck.cardList[cardDeck.cardList.Count - 1]].Rarity; + //cardPrefab = new GameObject(); + /*switch (cardRarity) + { + case Name.CardRarity.Legendary: + cardPrefab = Instantiate(cardDeck.legendaryCardPrefab, handCard.cardPanle.transform); + break; + case Name.CardRarity.Rare: + cardPrefab = Instantiate(cardDeck.rareCardPrefab, handCard.cardPanle.transform); + break; + case Name.CardRarity.Common: + cardPrefab = Instantiate(cardDeck.cardPrefabPuTong, handCard.cardPanle.transform); + break; + }*/ + /* if (cardRarity==Name.CardRarity.Legendary) + { + cardPrefab = Instantiate(cardDeck.legendaryCardPrefab, handCard.cardPanle.transform); + } + else + { + cardPrefab = Instantiate(cardDeck.cardPrefabPuTong, handCard.cardPanle.transform); + }*/ + + cardPrefab.GetComponent().localEulerAngles = new Vector3(0, 0, 0); + CardEntity cardEntity = cardPrefab.GetComponent(); + cardEntity.createCard(cardId, i, true); + cardDeck.cardList.RemoveAt(cardDeck.cardList.Count - 1); + handCard.cardEntityList.Add(cardEntity); + //ӿƶű + CardSmall cardSmall = cardPrefab.AddComponent(); + cardSmall.SetDestinationWithDrawCard(CardActiveSort.Instance.newPointList[i]); + } + public void createCardWithoutMove(int i) { GameObject cardPrefab; diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/Enemy.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/Enemy.cs index de24a445..56f25706 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/Enemy.cs +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/Enemy.cs @@ -127,7 +127,7 @@ public class Enemy : MonoBehaviour public IEnumerator moveOneStep(MapUnity nexMapUnity) { - enemyNode.bleedCal(); + //enemyNode.bleedCal(); MapUnity currentNode = getNodeTools.LocationToGetNode(enemyNode.positionX, enemyNode.positionY); MapUnity disNode = nexMapUnity; currentNode.blocked = false; @@ -180,7 +180,7 @@ public class Enemy : MonoBehaviour //жϸʴ enemyNode.CorrodeRealize(endMapUnity); //жѪ - enemyNode.bleedRealize(endMapUnity); + enemyNode.bleedRealize(); yield break; } diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/EnemyNode.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/EnemyNode.cs index 8fa8c712..8d3a08b6 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/EnemyNode.cs +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/EnemyNode.cs @@ -337,6 +337,10 @@ public class EnemyNode : MonoBehaviour,IEnemyObserver { extraStep += EnemyState.abnormalCondition[AbnormalCondition.upSpeed].value; } + if (EnemyState.abnormalCondition.ContainsKey(AbnormalCondition.disable)) + { + extraStep -= 1; + } if (EnemyManager.Instance.isEnemyAlive(Name.EnemyName.SoulMaker) && MapUnityManager.Instance.enemyNodeCount > 12) { extraStep += 2; @@ -346,7 +350,7 @@ public class EnemyNode : MonoBehaviour,IEnemyObserver stepMultiplie = 0f; } int trueStepRange=EnemyState.stepRange+extraStep; - MathTool.keepNature(trueStepRange); + MathTool.keepNature(ref trueStepRange); int result=(int)(trueStepRange * stepMultiplie); return result; } @@ -730,14 +734,6 @@ public class EnemyNode : MonoBehaviour,IEnemyObserver //ʱ public virtual void OnDeath() { - if (EnemyState.abnormalCondition.TryGetValue(AbnormalCondition.posion,out Buff posionbuff)&& - LegacyManager.Instance.relicClassNameList.Contains(Name.Legacy.LegacyNode_SnakeGall)) - { - if (posionbuff.value > 10) - { - Usermanager.Instance.recoverHp(1); - } - } if (EnemyState.abnormalCondition.ContainsKey(AbnormalCondition.boomAndPollute)) { boomAndPolluteCal(); @@ -746,6 +742,27 @@ public class EnemyNode : MonoBehaviour,IEnemyObserver { boomCal(); } + if (EnemyState.abnormalCondition.ContainsKey(AbnormalCondition.deathMark)&& EnemyState.abnormalCondition.ContainsKey(AbnormalCondition.bleed)) + { + deathMarkCal(); + } + if (LegacyManager.Instance.relicClassNameList.Contains(Name.Legacy.LegacyNode_BloodTax)) + { + Usermanager.Instance.SufferPlayerAbnormalCondition(AbnormalCondition.bleedDamage, 1); + } + if (LegacyManager.Instance.relicClassNameList.Contains(Name.Legacy.LegacyNode_Sneakers)) + { + if (LegacyManager.Instance.legacyNodesList[Name.Legacy.LegacyNode_Sneakers].isUsed.Equals(false)) + { + LegacyManager.Instance.legacyNodesList[Name.Legacy.LegacyNode_Sneakers].isUsed = true; + GameManager.Instance.playerState.currentStepRange = GameManager.Instance.playerState.maxStepRange; + } + } + if (LegacyManager.Instance.isUseful(Name.Legacy.LegacyNode_ActivatedCarbon)) + { + MapUnity currentNode = GameManager.Instance.X[positionX].Y[positionY]; + currentNode.canChange = false; + } if (bone != null) { var currentenemy = Instantiate(bone, this.transform.position, this.transform.rotation); @@ -820,6 +837,16 @@ public class EnemyNode : MonoBehaviour,IEnemyObserver } } + public void deathMarkCal() + { + MapUnity currentNode = GameManager.Instance.X[positionX].Y[positionY]; + HashSet targetSet = new HashSet(); + targetSet.Add(currentNode); + getNodeTools.getCircleNodeForBoom(targetSet, 3); + int bleedCount= EnemyState.abnormalCondition[AbnormalCondition.bleed].value; + SettlementManager.Instance.abnormalConditionWork(AbnormalCondition.bleed, bleedCount, new List(targetSet)); + } + public void boomCal() { MapUnity currentNode = GameManager.Instance.X[positionX].Y[positionY]; @@ -1092,7 +1119,7 @@ public class EnemyNode : MonoBehaviour,IEnemyObserver { thornCal(); } - bleedCal(); + bleedRealize(); int trueDamage = SufferDamageCalculation(damageVal); if (trueDamage > EnemyState.shieldValue) { @@ -1180,6 +1207,89 @@ public class EnemyNode : MonoBehaviour,IEnemyObserver } } + public void bleedRealize() + { + if (EnemyState.abnormalCondition.ContainsKey(AbnormalCondition.bleed)) + { + int bleedDamage = 2; + if (Usermanager.playerAbnormalCondition.ContainsKey(AbnormalCondition.bleedDamage)) + { + bleedDamage += Usermanager.playerAbnormalCondition[AbnormalCondition.bleedDamage].value; + } + if (EnemyState.abnormalCondition.ContainsKey(AbnormalCondition.bleedHeal)) + { + Usermanager.Instance.recoverHp(bleedDamage); + } + bleed4TurnCostCal(); + bleed3TurnCostCal(); + sufferTrueDamage(bleedDamage); + EnemyState.abnormalCondition[AbnormalCondition.bleed].value -= 1; + if (EnemyState.abnormalCondition[AbnormalCondition.bleed].value <= 0) + { + EnemyState.abnormalCondition.Remove(AbnormalCondition.bleed); + } + + if (LegacyManager.Instance.isUseful(Name.Legacy.LegacyNode_MeatSaw)) + { + bleedRealizeForMeatSaw(); + } + } + + } + + public void bleedRealizeForMeatSaw() + { + if (EnemyState.abnormalCondition.ContainsKey(AbnormalCondition.bleed)) + { + int bleedDamage = 2; + if (Usermanager.playerAbnormalCondition.ContainsKey(AbnormalCondition.bleedDamage)) + { + bleedDamage += Usermanager.playerAbnormalCondition[AbnormalCondition.bleedDamage].value; + } + if (EnemyState.abnormalCondition.ContainsKey(AbnormalCondition.bleedHeal)) + { + Usermanager.Instance.recoverHp(bleedDamage); + } + bleed4TurnCostCal(); + bleed3TurnCostCal(); + sufferTrueDamage(bleedDamage); + EnemyState.abnormalCondition[AbnormalCondition.bleed].value -= 1; + if (EnemyState.abnormalCondition[AbnormalCondition.bleed].value <= 0) + { + EnemyState.abnormalCondition.Remove(AbnormalCondition.bleed); + } + } + + } + + private void bleed4TurnCostCal() + { + if (Usermanager.playerAbnormalCondition.ContainsKey(AbnormalCondition.bleed4TurnCost)) + { + Usermanager.playerAbnormalCondition[AbnormalCondition.bleed4TurnCost].count += 1; + if (Usermanager.playerAbnormalCondition[AbnormalCondition.bleed4TurnCost].count == 4) + { + GameManager.Instance.playerState.currentCost += 1; + Usermanager.playerAbnormalCondition[AbnormalCondition.bleed4TurnCost].count = 0; + } + } + + } + + private void bleed3TurnCostCal() + { + if (Usermanager.playerAbnormalCondition.ContainsKey(AbnormalCondition.bleed3TurnCost)) + { + Usermanager.playerAbnormalCondition[AbnormalCondition.bleed3TurnCost].count += 1; + if (Usermanager.playerAbnormalCondition[AbnormalCondition.bleed3TurnCost].count == 3) + { + GameManager.Instance.playerState.currentCost += 1; + Usermanager.playerAbnormalCondition[AbnormalCondition.bleed4TurnCost].count = 0; + } + } + + } + private void thornCal() { if (EnemyState.abnormalCondition.ContainsKey(AbnormalCondition.thorn)) @@ -1515,19 +1625,7 @@ public class EnemyNode : MonoBehaviour,IEnemyObserver } } - public void bleedRealize(MapUnity node) - { - if (EnemyState.abnormalCondition.ContainsKey(AbnormalCondition.bleed)) - { - sufferDamage(2, false); - EnemyState.abnormalCondition[AbnormalCondition.bleed].value -= 1; - if (EnemyState.abnormalCondition[AbnormalCondition.bleed].value <= 0) - { - EnemyState.abnormalCondition.Remove(AbnormalCondition.bleed); - } - } - - } + #endregion diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/V0.1/AshBeetle.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/V0.1/AshBeetle.cs index 178522b4..8db8cbfa 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/V0.1/AshBeetle.cs +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/V0.1/AshBeetle.cs @@ -180,7 +180,7 @@ public class AshBeetle : MonoBehaviour //жϸʴ enemyNode.CorrodeRealize(endMapUnity); //жѪ - enemyNode.bleedRealize(endMapUnity); + enemyNode.bleedRealize(); yield break; } diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/V0.1/BlastFistMushroom.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/V0.1/BlastFistMushroom.cs index 47ebac05..7cea772e 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/V0.1/BlastFistMushroom.cs +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/V0.1/BlastFistMushroom.cs @@ -186,7 +186,7 @@ public class BlastFistMushroom : MonoBehaviour //жϸʴ enemyNode.CorrodeRealize(endMapUnity); //жѪ - enemyNode.bleedRealize(endMapUnity); + enemyNode.bleedRealize(); yield break; } @@ -207,7 +207,7 @@ public class BlastFistMushroom : MonoBehaviour public void AttackDamage() { int damage = GameManager.Instance.gerEnemytNodeCount(); - MathTool.keepNature(damage); + MathTool.keepNature(ref damage); Usermanager.Instance.SufferDamage(enemyNode.DamageCalculation(damage), enemyNode); } } diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/V0.1/CorrosiveSludge.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/V0.1/CorrosiveSludge.cs index a7c2275c..8669a953 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/V0.1/CorrosiveSludge.cs +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/V0.1/CorrosiveSludge.cs @@ -208,7 +208,7 @@ public class CorrosiveSludge : MonoBehaviour //жϸʴ enemyNode.CorrodeRealize(endMapUnity); //жѪ - enemyNode.bleedRealize(endMapUnity); + enemyNode.bleedRealize(); yield break; } diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/V0.1/DarkCloud.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/V0.1/DarkCloud.cs index 720c40bd..1fb06e8e 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/V0.1/DarkCloud.cs +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/V0.1/DarkCloud.cs @@ -317,7 +317,7 @@ public class DarkCloud : MonoBehaviour //жϸʴ enemyNode.CorrodeRealize(endMapUnity); //жѪ - enemyNode.bleedRealize(endMapUnity); + enemyNode.bleedRealize(); yield break; } diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/V0.1/DrowsyShroom.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/V0.1/DrowsyShroom.cs index 6cf7f86b..04797bbc 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/V0.1/DrowsyShroom.cs +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/V0.1/DrowsyShroom.cs @@ -188,7 +188,7 @@ public class DrowsyShroom : MonoBehaviour //жϸʴ enemyNode.CorrodeRealize(endMapUnity); //жѪ - enemyNode.bleedRealize(endMapUnity); + enemyNode.bleedRealize(); yield break; } diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/V0.1/EmberWraith.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/V0.1/EmberWraith.cs index 24fb6a46..5d94c5a8 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/V0.1/EmberWraith.cs +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/V0.1/EmberWraith.cs @@ -204,7 +204,7 @@ public class EmberWraith : MonoBehaviour //жϸʴ enemyNode.CorrodeRealize(endMapUnity); //жѪ - enemyNode.bleedRealize(endMapUnity); + enemyNode.bleedRealize(); yield break; } diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/V0.1/Grinfiend.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/V0.1/Grinfiend.cs index 592433b7..83bfc399 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/V0.1/Grinfiend.cs +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/V0.1/Grinfiend.cs @@ -326,7 +326,7 @@ public class Grinfiend : MonoBehaviour //жϸʴ enemyNode.CorrodeRealize(endMapUnity); //жѪ - enemyNode.bleedRealize(endMapUnity); + enemyNode.bleedRealize(); yield break; } diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/V0.1/HoodWanderer.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/V0.1/HoodWanderer.cs index 3d54ff57..a993ecf7 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/V0.1/HoodWanderer.cs +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/V0.1/HoodWanderer.cs @@ -235,7 +235,7 @@ public class HoodWanderer : MonoBehaviour //жϸʴ enemyNode.CorrodeRealize(endMapUnity); //жѪ - enemyNode.bleedRealize(endMapUnity); + enemyNode.bleedRealize(); yield break; } diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/V0.1/Mushroom.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/V0.1/Mushroom.cs index 27c68a85..3ccb1202 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/V0.1/Mushroom.cs +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/V0.1/Mushroom.cs @@ -393,7 +393,7 @@ public class Mushroom : MonoBehaviour //жϸʴ enemyNode.CorrodeRealize(endMapUnity); //жѪ - enemyNode.bleedRealize(endMapUnity); + enemyNode.bleedRealize(); yield break; } diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/V0.1/ParasiticMushroom.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/V0.1/ParasiticMushroom.cs index ed47400e..f7150843 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/V0.1/ParasiticMushroom.cs +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/V0.1/ParasiticMushroom.cs @@ -239,7 +239,7 @@ public class ParasiticMushroom : MonoBehaviour //жϸʴ enemyNode.CorrodeRealize(endMapUnity); //жѪ - enemyNode.bleedRealize(endMapUnity); + enemyNode.bleedRealize(); yield break; } diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/V0.1/Polymaw.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/V0.1/Polymaw.cs index 8733865a..2b3cfe7f 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/V0.1/Polymaw.cs +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/V0.1/Polymaw.cs @@ -331,7 +331,7 @@ public class Polymaw : MonoBehaviour //жϸʴ enemyNode.CorrodeRealize(endMapUnity); //жѪ - enemyNode.bleedRealize(endMapUnity); + enemyNode.bleedRealize(); yield break; } diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/V0.1/ShatteringFistMushroom.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/V0.1/ShatteringFistMushroom.cs index 12c00d52..2cf70c45 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/V0.1/ShatteringFistMushroom.cs +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/V0.1/ShatteringFistMushroom.cs @@ -243,7 +243,7 @@ public class ShatteringFistMushroom : MonoBehaviour //жϸʴ enemyNode.CorrodeRealize(endMapUnity); //жѪ - enemyNode.bleedRealize(endMapUnity); + enemyNode.bleedRealize(); yield break; } diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/V0.1/SkullGuardian.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/V0.1/SkullGuardian.cs index 7d0b49d9..1db7f610 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/V0.1/SkullGuardian.cs +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/V0.1/SkullGuardian.cs @@ -202,7 +202,7 @@ public class SkullGuardian : MonoBehaviour //жϸʴ enemyNode.CorrodeRealize(endMapUnity); //жѪ - enemyNode.bleedRealize(endMapUnity); + enemyNode.bleedRealize(); yield break; } diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/V0.1/SkullMage.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/V0.1/SkullMage.cs index 692a7825..b58289ae 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/V0.1/SkullMage.cs +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/V0.1/SkullMage.cs @@ -216,7 +216,7 @@ public class SkullMage : MonoBehaviour //жϸʴ enemyNode.CorrodeRealize(endMapUnity); //жѪ - enemyNode.bleedRealize(endMapUnity); + enemyNode.bleedRealize(); yield break; } diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/V0.1/SkullWarlock.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/V0.1/SkullWarlock.cs index f1b658d2..4742e8fb 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/V0.1/SkullWarlock.cs +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/V0.1/SkullWarlock.cs @@ -206,7 +206,7 @@ public class SkullWarlock : MonoBehaviour //жϸʴ enemyNode.CorrodeRealize(endMapUnity); //жѪ - enemyNode.bleedRealize(endMapUnity); + enemyNode.bleedRealize(); yield break; } diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild.meta b/ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild.meta index b6a8ff89..66a4c3b9 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild.meta +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: ae81639b55b115344ba483790eeab686 +guid: 281d6a379996cfb44962f57c0de81415 folderAsset: yes DefaultImporter: externalObjects: {} diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_ActivatedCarbon.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_ActivatedCarbon.cs new file mode 100644 index 00000000..1cfbd7d0 --- /dev/null +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_ActivatedCarbon.cs @@ -0,0 +1,8 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class LegacyNode_ActivatedCarbon : LegacyNode +{ + +} diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_ActivatedCarbon.cs.meta b/ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_ActivatedCarbon.cs.meta new file mode 100644 index 00000000..a28c082a --- /dev/null +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_ActivatedCarbon.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 0cc37f34a087db04490ed46f6fc2f981 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_AegisOfTheImmortal.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_AegisOfTheImmortal.cs new file mode 100644 index 00000000..999bc0c4 --- /dev/null +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_AegisOfTheImmortal.cs @@ -0,0 +1,29 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class LegacyNode_AegisOfTheImmortal : LegacyNode +{ + public override void Use() + { + if (isUsed == false) + { + int recoverHpVal = (int)GameManager.Instance.playerState.maxHP / 10 * 3; + GameManager.Instance.playerState.currentHP=recoverHpVal; + isUsed = true; + } + + } + + public override bool IsUseful() + { + if (isUsed == false) + { + return true; + } + else + { + return false; + } + } +} diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_AegisOfTheImmortal.cs.meta b/ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_AegisOfTheImmortal.cs.meta new file mode 100644 index 00000000..7486d37d --- /dev/null +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_AegisOfTheImmortal.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 7086a35f318e6bf448553227273a6943 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_BigBackpack.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_BigBackpack.cs new file mode 100644 index 00000000..82c3795e --- /dev/null +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_BigBackpack.cs @@ -0,0 +1,11 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class LegacyNode_BigBackpack : LegacyNode +{ + public override void Use() + { + Usermanager.Instance.Shield += Usermanager.Instance.ShieldCalculation(3); + } +} diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_BigBackpack.cs.meta b/ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_BigBackpack.cs.meta new file mode 100644 index 00000000..4742e9fa --- /dev/null +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_BigBackpack.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 450ef84430f74dd4bbac3bc20c7c1e5a +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_Bipod.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_Bipod.cs new file mode 100644 index 00000000..c98c286f --- /dev/null +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_Bipod.cs @@ -0,0 +1,30 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class LegacyNode_Bipod : LegacyNode +{ + public bool lastRoundTrigger=true; + public bool thisRoundTrigger = false; + + public override bool IsUseful() + { + bool result = false; + if (lastRoundTrigger) + { + result = true; + } + return result; + } + + public override void EffectInPlayerTurnEnd() + { + lastRoundTrigger = thisRoundTrigger; + thisRoundTrigger=false; + } + + public override void ResetCount() + { + thisRoundTrigger=true; + } +} diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_Bipod.cs.meta b/ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_Bipod.cs.meta new file mode 100644 index 00000000..339cc6bf --- /dev/null +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_Bipod.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: e985a48b718f0d047848b5ce0a87c743 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_BloodBorne.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_BloodBorne.cs new file mode 100644 index 00000000..c0ab2642 --- /dev/null +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_BloodBorne.cs @@ -0,0 +1,18 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class LegacyNode_BloodBorne : LegacyNode +{ + // Start is called before the first frame update + void Start() + { + + } + + // Update is called once per frame + void Update() + { + + } +} diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_BloodBorne.cs.meta b/ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_BloodBorne.cs.meta new file mode 100644 index 00000000..5ca0630b --- /dev/null +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_BloodBorne.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: f9dfde8ffd59d6645982ec82f20b043f +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_BloodTax.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_BloodTax.cs new file mode 100644 index 00000000..5aca23d7 --- /dev/null +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_BloodTax.cs @@ -0,0 +1,8 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class LegacyNode_BloodTax : LegacyNode +{ + +} diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_BloodTax.cs.meta b/ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_BloodTax.cs.meta new file mode 100644 index 00000000..273bcdf0 --- /dev/null +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_BloodTax.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 8d4cac3a6694a174ca2b722f6ec2a93f +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_ChaosTrigger.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_ChaosTrigger.cs new file mode 100644 index 00000000..aa00af95 --- /dev/null +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_ChaosTrigger.cs @@ -0,0 +1,27 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class LegacyNode_ChaosTrigger : LegacyNode +{ + public bool yellowTrigger=false; + public bool redTrigger = false; + public bool blueTrigger = false; + + public override bool IsUseful() + { + bool result=false; + if (yellowTrigger&& redTrigger&& blueTrigger) + { + result=true; + } + return result; + } + + public override void EffectInPlayerTurnEnd() + { + yellowTrigger = false; + blueTrigger = false; + redTrigger = false; + } +} diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_ChaosTrigger.cs.meta b/ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_ChaosTrigger.cs.meta new file mode 100644 index 00000000..137facb6 --- /dev/null +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_ChaosTrigger.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: c82f0b01863a17f42b7f2129b2ed44eb +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_Cheese.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_Cheese.cs new file mode 100644 index 00000000..4694f569 --- /dev/null +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_Cheese.cs @@ -0,0 +1,12 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class LegacyNode_Cheese : LegacyNode +{ + public override void OnGet() + { + int recoverHpVal = 30; + Usermanager.Instance.recoverHp(recoverHpVal); + } +} diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_Cheese.cs.meta b/ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_Cheese.cs.meta new file mode 100644 index 00000000..2e98e3d9 --- /dev/null +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_Cheese.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 44f70195fc587904baaae09745f23ddd +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_Filter.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_Filter.cs new file mode 100644 index 00000000..18b3b6a1 --- /dev/null +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_Filter.cs @@ -0,0 +1,11 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class LegacyNode_Filter : LegacyNode +{ + + + + +} diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_Filter.cs.meta b/ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_Filter.cs.meta new file mode 100644 index 00000000..63837efa --- /dev/null +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_Filter.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 5b63c67010446d24ab8cbcfc5f29f98d +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_FreeBullet.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_FreeBullet.cs new file mode 100644 index 00000000..884054a9 --- /dev/null +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_FreeBullet.cs @@ -0,0 +1,17 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class LegacyNode_FreeBullet : LegacyNode +{ + + public override bool IsUseful() + { + bool result=false; + if (count == 4) + { + result=true; + } + return result; + } +} diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_FreeBullet.cs.meta b/ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_FreeBullet.cs.meta new file mode 100644 index 00000000..221e6db5 --- /dev/null +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_FreeBullet.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 1d501d5fe5fd5fc45ab49b81e264b455 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_LightningBoots.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_LightningBoots.cs new file mode 100644 index 00000000..e8459bd2 --- /dev/null +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_LightningBoots.cs @@ -0,0 +1,24 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class LegacyNode_LightningBoots : LegacyNode +{ + + public override bool IsUseful() + { + bool result = false; + if (count == 3) + { + result = true; + } + return result; + + } + + public override void Use() + { + GameManager.Instance.playerState.currentStepRange += 2; + ResetCount(); + } +} diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_LightningBoots.cs.meta b/ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_LightningBoots.cs.meta new file mode 100644 index 00000000..46b7f5db --- /dev/null +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_LightningBoots.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: cd26e3e64f3217644b98784901afe3fc +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_MeatSaw.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_MeatSaw.cs new file mode 100644 index 00000000..bb569182 --- /dev/null +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_MeatSaw.cs @@ -0,0 +1,8 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class LegacyNode_MeatSaw : LegacyNode +{ + +} diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_MeatSaw.cs.meta b/ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_MeatSaw.cs.meta new file mode 100644 index 00000000..ff37ea19 --- /dev/null +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_MeatSaw.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: f650d7c780239c34c823efc783c917d0 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_NurturingBloom.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_NurturingBloom.cs new file mode 100644 index 00000000..b3429435 --- /dev/null +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_NurturingBloom.cs @@ -0,0 +1,15 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class LegacyNode_NurturingBloom: LegacyNode +{ + public override void EffectInPlayerTurnEnd() + { + if (GameManager.Instance.playerOn.whoColour == Name.NodeColor.Black) + { + Usermanager.Instance.SufferPlayerAbnormalCondition(AbnormalCondition.angerUpperDamage, 2); + Usermanager.Instance.lostHp(5); + } + } +} diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_NurturingBloom.cs.meta b/ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_NurturingBloom.cs.meta new file mode 100644 index 00000000..266b21bd --- /dev/null +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_NurturingBloom.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 7b8e9769b94e28442a9bc5680300c9f6 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_PainContract.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_PainContract.cs new file mode 100644 index 00000000..f78ec43e --- /dev/null +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_PainContract.cs @@ -0,0 +1,21 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class LegacyNode_PainContract : LegacyNode +{ + public override void EffectInPlayerTurnBegin() + { + Usermanager.Instance.lostHp(2); + List colorList = MathTool.GenerateRandomPlayerColorList(6); + MapUnity playerNode = GameManager.Instance.playerOn; + HashSet targetSet=new HashSet { playerNode }; + getNodeTools.getCircleNodeExceptSelf(targetSet,1); + List< MapUnity> targetList = new List(targetSet); + for (int i=0; i 9) + { + Usermanager.Instance.Shield += Usermanager.Instance.ShieldCalculation(7); + } + + } +} diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_Parasol.cs.meta b/ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_Parasol.cs.meta new file mode 100644 index 00000000..26a625e2 --- /dev/null +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_Parasol.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: d5b288d7194006c4c93a0199ea52068e +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_PerpetualMotionPump.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_PerpetualMotionPump.cs new file mode 100644 index 00000000..4e3c442a --- /dev/null +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_PerpetualMotionPump.cs @@ -0,0 +1,8 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class LegacyNode_PerpetualMotionPump : LegacyNode +{ + +} diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_PerpetualMotionPump.cs.meta b/ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_PerpetualMotionPump.cs.meta new file mode 100644 index 00000000..fb0997b1 --- /dev/null +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_PerpetualMotionPump.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: e3b8b5ca83486ff4b95bd3f19cf0d24e +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_PlatedSteelcaps.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_PlatedSteelcaps.cs new file mode 100644 index 00000000..9e9b80a9 --- /dev/null +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_PlatedSteelcaps.cs @@ -0,0 +1,11 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class LegacyNode_PlatedSteelcaps : LegacyNode +{ + public override void Use() + { + Usermanager.Instance.Shield += Usermanager.Instance.ShieldCalculation(3); + } +} diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_PlatedSteelcaps.cs.meta b/ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_PlatedSteelcaps.cs.meta new file mode 100644 index 00000000..8ab7a7f5 --- /dev/null +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_PlatedSteelcaps.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 15720e4841ccf084aa2be96f1885ab52 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_PortableReactor.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_PortableReactor.cs new file mode 100644 index 00000000..5d5d027f --- /dev/null +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_PortableReactor.cs @@ -0,0 +1,8 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class LegacyNode_PortableReactor : LegacyNode +{ + +} diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_PortableReactor.cs.meta b/ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_PortableReactor.cs.meta new file mode 100644 index 00000000..e2677276 --- /dev/null +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_PortableReactor.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 47d9a0b02a09e7f47b7394b1efa3c3e5 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_Prism.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_Prism.cs new file mode 100644 index 00000000..1b4af9c3 --- /dev/null +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_Prism.cs @@ -0,0 +1,17 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class LegacyNode_Prism : LegacyNode +{ + public override bool IsUseful() + { + bool result=false; + if(MapUnityManager.Instance.yellowNodeCount!=0&& MapUnityManager.Instance.redNodeCount != 0&& MapUnityManager.Instance.blueNodeCount != 0) + { + result=true; + } + + return result; + } +} diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_Prism.cs.meta b/ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_Prism.cs.meta new file mode 100644 index 00000000..7e2202e0 --- /dev/null +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_Prism.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 6b6bbcbf82f0ba14cb488396d88d77df +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_PurityBadge.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_PurityBadge.cs new file mode 100644 index 00000000..b8598600 --- /dev/null +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_PurityBadge.cs @@ -0,0 +1,8 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class LegacyNode_PurityBadge : LegacyNode +{ + +} diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_PurityBadge.cs.meta b/ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_PurityBadge.cs.meta new file mode 100644 index 00000000..4ca4c0ad --- /dev/null +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_PurityBadge.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: b7086655735c4ab4b91bc077d65e2118 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_Sneakers.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_Sneakers.cs new file mode 100644 index 00000000..55f594e4 --- /dev/null +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_Sneakers.cs @@ -0,0 +1,11 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class LegacyNode_Sneakers : LegacyNode +{ + public override void EffectInPlayerTurnBegin() + { + isUsed = false; + } +} diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_Sneakers.cs.meta b/ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_Sneakers.cs.meta new file mode 100644 index 00000000..eeafb6c4 --- /dev/null +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_Sneakers.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 7a1dda8190b57aa488026d258bb5c90a +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_SpeedLoader.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_SpeedLoader.cs new file mode 100644 index 00000000..979d93ed --- /dev/null +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_SpeedLoader.cs @@ -0,0 +1,18 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class LegacyNode_SpeedLoader : LegacyNode +{ + + public override bool IsUseful() + { + bool result = false; + if (count == 9) + { + result = true; + } + return result; + + } +} diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_SpeedLoader.cs.meta b/ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_SpeedLoader.cs.meta new file mode 100644 index 00000000..b520c1a7 --- /dev/null +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_SpeedLoader.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 3eb4e618511b3cf4690c792d550f88aa +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_WasteReconstructor.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_WasteReconstructor.cs new file mode 100644 index 00000000..fa5078a3 --- /dev/null +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_WasteReconstructor.cs @@ -0,0 +1,18 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class LegacyNode_WasteReconstructor : LegacyNode +{ + // Start is called before the first frame update + void Start() + { + + } + + // Update is called once per frame + void Update() + { + + } +} diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_WasteReconstructor.cs.meta b/ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_WasteReconstructor.cs.meta new file mode 100644 index 00000000..36fb1e48 --- /dev/null +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_WasteReconstructor.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 5ca2f000cceeaed40a945cbcdbb775c7 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChildOld.meta b/ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChildOld.meta new file mode 100644 index 00000000..b6a8ff89 --- /dev/null +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChildOld.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: ae81639b55b115344ba483790eeab686 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_AgnisTorch.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChildOld/LegacyNode_AgnisTorch.cs similarity index 100% rename from ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_AgnisTorch.cs rename to ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChildOld/LegacyNode_AgnisTorch.cs diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_AgnisTorch.cs.meta b/ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChildOld/LegacyNode_AgnisTorch.cs.meta similarity index 100% rename from ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_AgnisTorch.cs.meta rename to ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChildOld/LegacyNode_AgnisTorch.cs.meta diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_AncientSilverCoin.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChildOld/LegacyNode_AncientSilverCoin.cs similarity index 100% rename from ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_AncientSilverCoin.cs rename to ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChildOld/LegacyNode_AncientSilverCoin.cs diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_AncientSilverCoin.cs.meta b/ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChildOld/LegacyNode_AncientSilverCoin.cs.meta similarity index 100% rename from ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_AncientSilverCoin.cs.meta rename to ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChildOld/LegacyNode_AncientSilverCoin.cs.meta diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_EnchantedConch.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChildOld/LegacyNode_EnchantedConch.cs similarity index 100% rename from ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_EnchantedConch.cs rename to ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChildOld/LegacyNode_EnchantedConch.cs diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_EnchantedConch.cs.meta b/ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChildOld/LegacyNode_EnchantedConch.cs.meta similarity index 100% rename from ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_EnchantedConch.cs.meta rename to ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChildOld/LegacyNode_EnchantedConch.cs.meta diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_GoldVines.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChildOld/LegacyNode_GoldVines.cs similarity index 100% rename from ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_GoldVines.cs rename to ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChildOld/LegacyNode_GoldVines.cs diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_GoldVines.cs.meta b/ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChildOld/LegacyNode_GoldVines.cs.meta similarity index 100% rename from ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_GoldVines.cs.meta rename to ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChildOld/LegacyNode_GoldVines.cs.meta diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_LavaHeart.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChildOld/LegacyNode_LavaHeart.cs similarity index 100% rename from ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_LavaHeart.cs rename to ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChildOld/LegacyNode_LavaHeart.cs diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_LavaHeart.cs.meta b/ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChildOld/LegacyNode_LavaHeart.cs.meta similarity index 100% rename from ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_LavaHeart.cs.meta rename to ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChildOld/LegacyNode_LavaHeart.cs.meta diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_MechanicalBoots.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChildOld/LegacyNode_MechanicalBoots.cs similarity index 100% rename from ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_MechanicalBoots.cs rename to ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChildOld/LegacyNode_MechanicalBoots.cs diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_MechanicalBoots.cs.meta b/ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChildOld/LegacyNode_MechanicalBoots.cs.meta similarity index 100% rename from ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_MechanicalBoots.cs.meta rename to ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChildOld/LegacyNode_MechanicalBoots.cs.meta diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_Scope.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChildOld/LegacyNode_Scope.cs similarity index 100% rename from ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_Scope.cs rename to ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChildOld/LegacyNode_Scope.cs diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_Scope.cs.meta b/ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChildOld/LegacyNode_Scope.cs.meta similarity index 100% rename from ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_Scope.cs.meta rename to ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChildOld/LegacyNode_Scope.cs.meta diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_SnakeGall.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChildOld/LegacyNode_SnakeGall.cs similarity index 100% rename from ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_SnakeGall.cs rename to ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChildOld/LegacyNode_SnakeGall.cs diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_SnakeGall.cs.meta b/ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChildOld/LegacyNode_SnakeGall.cs.meta similarity index 100% rename from ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_SnakeGall.cs.meta rename to ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChildOld/LegacyNode_SnakeGall.cs.meta diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_Starfish.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChildOld/LegacyNode_Starfish.cs similarity index 100% rename from ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_Starfish.cs rename to ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChildOld/LegacyNode_Starfish.cs diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_Starfish.cs.meta b/ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChildOld/LegacyNode_Starfish.cs.meta similarity index 100% rename from ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_Starfish.cs.meta rename to ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChildOld/LegacyNode_Starfish.cs.meta diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_StrongBody.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChildOld/LegacyNode_StrongBody.cs similarity index 100% rename from ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_StrongBody.cs rename to ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChildOld/LegacyNode_StrongBody.cs diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_StrongBody.cs.meta b/ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChildOld/LegacyNode_StrongBody.cs.meta similarity index 100% rename from ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_StrongBody.cs.meta rename to ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChildOld/LegacyNode_StrongBody.cs.meta diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_SuspiciousMushroom.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChildOld/LegacyNode_SuspiciousMushroom.cs similarity index 100% rename from ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_SuspiciousMushroom.cs rename to ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChildOld/LegacyNode_SuspiciousMushroom.cs diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_SuspiciousMushroom.cs.meta b/ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChildOld/LegacyNode_SuspiciousMushroom.cs.meta similarity index 100% rename from ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_SuspiciousMushroom.cs.meta rename to ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChildOld/LegacyNode_SuspiciousMushroom.cs.meta diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_VulcanHammer.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChildOld/LegacyNode_VulcanHammer.cs similarity index 100% rename from ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_VulcanHammer.cs rename to ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChildOld/LegacyNode_VulcanHammer.cs diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_VulcanHammer.cs.meta b/ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChildOld/LegacyNode_VulcanHammer.cs.meta similarity index 100% rename from ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChild/LegacyNode_VulcanHammer.cs.meta rename to ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyChildOld/LegacyNode_VulcanHammer.cs.meta diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyManager.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyManager.cs index 32f91886..b7e627c1 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyManager.cs +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyManager.cs @@ -31,7 +31,7 @@ public class LegacyManager : Singleton public List relicClassNameList = new List(); [Header("ѳеб")] - public List legacyNodesList = new List(); + public Dictionary legacyNodesList = new Dictionary(); private void OnEnable() { @@ -45,6 +45,43 @@ public class LegacyManager : Singleton // CreateLegacyClassAsNew("LegacyNode_StrongBody"); } + + public void tryUseLegacy(string legacyName) + { + if (LegacyManager.Instance.relicClassNameList.Contains(legacyName)) + { + LegacyManager.Instance.legacyNodesList[legacyName].Use(); + } + } + + public void tryAddCount(string legacyName,int i) + { + if (LegacyManager.Instance.relicClassNameList.Contains(legacyName)) + { + LegacyManager.Instance.legacyNodesList[legacyName].AddCount(i); + } + } + + public void tryResetCount(string legacyName) + { + if (LegacyManager.Instance.relicClassNameList.Contains(legacyName)) + { + LegacyManager.Instance.legacyNodesList[legacyName].ResetCount(); + } + } + + public bool isUseful(string legacyName) + { + bool result = false; + if (LegacyManager.Instance.relicClassNameList.Contains(legacyName)) + { + if (LegacyManager.Instance.legacyNodesList[legacyName].IsUseful()) + { + result = true; + } + } + return result; + } public void CreateLegacyClassAsNew(string className) { var lefacyObject = Instantiate(legacyPrefab, legacyFather.transform); @@ -117,9 +154,25 @@ public class LegacyManager : Singleton public void ReadRelicExcel(string fileName) { string filePath = Path.Combine(Application.streamingAssetsPath, fileName); - string[] lines = File.ReadAllLines(filePath); + //string[] lines = File.ReadAllLines(filePath); + using (FileStream fs = new FileStream(filePath, FileMode.Open, FileAccess.Read, FileShare.ReadWrite)) + using (StreamReader reader = new StreamReader(fs)) + { + while (!reader.EndOfStream) + { + string line = reader.ReadLine(); + // öŷָÿ + string[] values = line.Split(','); + List currentRelictData = new List(); + foreach (string value in values) + { + currentRelictData.Add(value); + } + relicsDictionary.Add(values[1], currentRelictData); + } + } - for (int i = 0; i < lines.Length; i++) + /* for (int i = 0; i < lines.Length; i++) { string[] values = lines[i].Split(','); List currentRelictData = new List(); @@ -128,7 +181,7 @@ public class LegacyManager : Singleton currentRelictData.Add(value); } relicsDictionary.Add(values[1], currentRelictData); - } + }*/ } //һغϿʼ diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyNode.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyNode.cs index fd36f006..e9bd4f79 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyNode.cs +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Legacy/LegacyNode.cs @@ -10,16 +10,20 @@ public class LegacyNode : MonoBehaviour public string relicClassName; public string infor; public Sprite image; + public bool isUsed = false; + public int count = 0; + public bool isUseful = true; //캯 public virtual void CreateLegacy(string className,bool isOnGet) { - LegacyManager.Instance.legacyNodesList.Add(this); + List relicData = LegacyManager.Instance.relicsDictionary[className]; relicName = relicData[3]; relicClassName = relicData[1]; infor = relicData[4]; image = ToolDontDestory.Instance.LoadImage(relicData[2]); + LegacyManager.Instance.legacyNodesList.Add(relicName,this); GetComponent().sprite = image; if (isOnGet ) { @@ -29,13 +33,14 @@ public class LegacyNode : MonoBehaviour } public virtual void CreateSaledRelic(string className, bool isOnGet) { - LegacyManager.Instance.legacyNodesList.Add(this); + List relicData = LegacyManager.Instance.relicsDictionary[className]; relicName = relicData[3]; relicClassName = relicData[1]; infor = relicData[4]; image = ToolDontDestory.Instance.LoadImage(relicData[2]); transform.GetChild(0).GetComponent().sprite = image; + LegacyManager.Instance.legacyNodesList.Add(relicName,this); if (isOnGet) { OnGet(); @@ -50,7 +55,7 @@ public class LegacyNode : MonoBehaviour public virtual void EffectInPlayerTurnBegin() { - + count = 0; } public virtual void EffectInPlayerTurnEnd() { @@ -64,4 +69,24 @@ public class LegacyNode : MonoBehaviour { } + + public virtual void Use() + { + + } + + public virtual void ResetCount() + { + count = 0; + } + + public virtual bool IsUseful() + { + return isUseful; + } + + public virtual void AddCount(int i) + { + count+=i; + } } diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/MapUnity.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/MapUnity.cs index e623ebfb..d9243e3d 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scripts/MapUnity.cs +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/MapUnity.cs @@ -1,9 +1,11 @@ using System; using System.Collections; using System.Collections.Generic; +using System.Linq; using Unity.VisualScripting; using UnityEngine; using UnityEngine.InputSystem; +using UnityEngine.Playables; using UnityEngine.UI; public class MapUnity : MonoBehaviour @@ -16,6 +18,8 @@ public class MapUnity : MonoBehaviour public int cubeS; public int cubeR; + public bool canChange=true; + public bool compalte;//ʶ [Header("UIЧΧؼ")] @@ -196,6 +200,44 @@ public class MapUnity : MonoBehaviour public void switchColor(int newColor) { + if (canChange==false) + { + return; + } + if (whoColour == newColor) + { + return; + } + if (LegacyManager.Instance.relicClassNameList.Contains(Name.Legacy.LegacyNode_BloodBorne)&&enemyNode!=null) + { + enemyNode.sufferAbnormalCondition(AbnormalCondition.bleed, 4); + } + if (LegacyManager.Instance.isUseful(Name.Legacy.LegacyNode_Filter)&&whoColour==Name.NodeColor.Black) + { + Usermanager.Instance.Shield += Usermanager.Instance.ShieldCalculation(1); + } + if (LegacyManager.Instance.isUseful(Name.Legacy.LegacyNode_PurityBadge) && whoColour == Name.NodeColor.Black) + { + SettlementManager.Instance.damageWork(4, getNodeTools.getAllNodes().ToList(), 0); + LegacyManager.Instance.legacyNodesList[Name.Legacy.LegacyNode_PurityBadge].isUseful=false; + } + if (LegacyManager.Instance.relicClassNameList.Contains(Name.Legacy.LegacyNode_ChaosTrigger)) + { + LegacyNode_ChaosTrigger legacyNode_ChaosTrigger = (LegacyNode_ChaosTrigger)LegacyManager.Instance.legacyNodesList[Name.Legacy.LegacyNode_ChaosTrigger]; + switch (newColor) + { + + case Name.NodeColor.Yellow: + legacyNode_ChaosTrigger.yellowTrigger=true; + break; + case Name.NodeColor.Blue: + legacyNode_ChaosTrigger.blueTrigger = true; + break; + case Name.NodeColor.Red: + legacyNode_ChaosTrigger.redTrigger = true; + break; + } + } if (whoColour!=6&& whoColour != 10) { whoColour = newColor; diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Player.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Player.cs index f93e766d..12666489 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scripts/Player.cs +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Player.cs @@ -261,7 +261,8 @@ public class Player : MonoBehaviour Usermanager.Instance.ParasitismnRealize(movePath [i]);//뵱ǰnode Usermanager.Instance.bleedRealize(); // - GameManager.Instance.playerState.currentStepRange -= 1; + GameManager.Instance.playerState.currentStepRange -= 1; + LegacyManager.Instance.tryUseLegacy(Name.Legacy.LegacyNode_PlatedSteelcaps); } this.gameObject.transform.position = new Vector3(mapNode.transform.position.x, 0.5f, mapNode.transform.position.z); @@ -280,6 +281,10 @@ public class Player : MonoBehaviour // moveLineRenderer.enabled = false; playerMoveDestination.SetActive(false); destinationCannotUpdate = false; + if (LegacyManager.Instance.relicClassNameList.Contains(Name.Legacy.LegacyNode_Bipod)) + { + LegacyManager.Instance.legacyNodesList[Name.Legacy.LegacyNode_Bipod].ResetCount(); + } } else { diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/PlayerManager/PlayerStatsManager.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/PlayerManager/PlayerStatsManager.cs index 23a48452..20880a3a 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scripts/PlayerManager/PlayerStatsManager.cs +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/PlayerManager/PlayerStatsManager.cs @@ -91,7 +91,7 @@ public class PlayerStatsManager : Singleton public void gainMoney(int value) { playerState.money += value; - MathTool.keepNature(playerState.money); + MathTool.keepNature(ref playerState.money); if (LegacyManager.Instance.relicClassNameList.Contains(Name.Legacy.LegacyNode_GoldVines)) { playerState.currentHP += 2; diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Tool/AbnormalCondition.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Tool/AbnormalCondition.cs index 70a57904..39af5daa 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scripts/Tool/AbnormalCondition.cs +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Tool/AbnormalCondition.cs @@ -73,12 +73,45 @@ public class AbnormalCondition : Singleton public const string armor = "51"; // public const string shedding = "52"; + //Ѫ˺ + public const string bleedDamage = "57"; + //² + public const string disable = "58"; + //޷û + public const string cantShield = "70"; + //Ѫ:Ŀ굥λ´Ѫ˺ + public const string bleedHeal = "74"; + //غڴ4Ѫ1 + public const string bleed4TurnCost = "75"; + //غڴ3Ѫ1 + public const string bleed3TurnCost = "76"; + //ʹһĸΪѪ + public const string nextCardCostHp = "77"; + //ʹһ-1 + public const string nextCardCostMinusOne = "78"; + //غ޷ͷЧ + public const string cantUserEffectCaed = "79"; + //ͿɫƷ-1 + public const string dyeingCardCostMinusOne = "80"; + //Ϳɫʩ+2 + public const string nextDyeingCardRangeAddTwo = "81"; + //һЧƽ + public const string nextEffectCardDoubleSettle = "82"; + //ӡ + public const string deathMark = "83"; + //1غʱ + public const string tempEmberOneRound = "87"; + //2غʱ + public const string tempEmberTwoRound = "88"; + //ͿɫΪ0 + public const string nextDyeingCardCostZero = "92"; public static readonly List canNegativeNumberList = new List { angerUpperDamage, shieldUpperValue, addDrawCard }; - public static readonly List playBuffList = new List {firm, addDrawCard, upSpeed , immunity, fireShield, doubleSettle, nextTurnExtraOneCost ,tempCastRange}; + public static readonly List playBuffList = new List {firm, addDrawCard, upSpeed , immunity, fireShield, doubleSettle, nextTurnExtraOneCost ,tempCastRange, bleedDamage, bleed3TurnCost, bleed4TurnCost, nextCardCostMinusOne, nextCardCostHp, dyeingCardCostMinusOne + ,nextDyeingCardRangeAddTwo,nextEffectCardDoubleSettle}; public static readonly List playUndeterminedBuffList = new List { angerUpperDamage, shieldUpperValue }; - public static readonly List enemyDebuffList = new List { wet, banStep , fireSeed , levelSleep , vulnerable , bleed , sleep ,disarm, posion , weak ,coma}; + public static readonly List enemyDebuffList = new List { wet, banStep , fireSeed , levelSleep , vulnerable , bleed , sleep ,disarm, posion , weak ,coma, disable ,bleedHeal, deathMark }; } diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Tool/CardFunction.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Tool/CardFunction.cs index cd36ce7b..b8e0aa77 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scripts/Tool/CardFunction.cs +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Tool/CardFunction.cs @@ -105,4 +105,85 @@ public static class CardFunction public const string placeTrees = "51"; // public const string repel = "52"; + //x*y˺ + public const string damagexy = "53"; + //Ժɫؿ˺ + public const string damageForRedNode = "54"; + //ԺɫؿѪ + public const string bleedForRedNode = "55"; + //ȡͿɫ + public const string drawDyeingCard = "56"; + //Ѫ˺ + public const string bleedDamage = "57"; + //² + public const string disable = "58"; + //лƣöӦĻ + public const string turnYellowNodesToShield = "59"; + //ûƶӦĻ,һɫ + public const string turnHalfYellowNodesToShield = "60"; + //Χ2Χؿ飬ÿ31 + public const string turn3RedNodesToEmber = "61"; + //Χ2Χؿ飬ÿ31 + public const string turn2RedNodesToEmber = "62"; + //Ŀɻܵ˺ + public const string shieldToDamage = "63"; + //ĿѪû + public const string ifBleedThenShield = "64"; + //ʧȥ + public const string lostHp = "65"; + //ʹĿѪ + public const string doubleBleed = "66"; + //ʹĿѪ3 + public const string tripleBleed = "67"; + //㵥λһѪ + public const string settleHalfBleed = "68"; + //㵥λȫѪ + public const string settleAllBleed = "69"; + //޷û + public const string cantShield = "70"; + //ֵһĻ + public const string halfHpShield = "71"; + //2Χɫÿ11Χеʩ1Ѫ + public const string turnRedNodesToBleed = "72"; + //2Χɫÿ12Χеʩ1Ѫ + public const string turnRedNodesToBleedInTwoCirCle = "73"; + //Ѫ:Ŀ굥λ´Ѫ˺ + public const string bleedHeal = "74"; + //غڴ4Ѫ1 + public const string bleed4TurnCost = "75"; + //غڴ3Ѫ1 + public const string bleed3TurnCost = "76"; + //ʹһĸΪѪ + public const string nextCardCostHp = "77"; + //ʹһ-1 + public const string nextCardCostMinusOne = "78"; + //غ޷ͷЧ + public const string cantUserEffectCaed = "79"; + //ͿɫƷ-1 + public const string dyeingCardCostMinusOne = "80"; + //Ϳɫʩ+2 + public const string nextDyeingCardRangeAddTwo = "81"; + //һЧƽ + public const string nextEffectCardDoubleSettle = "82"; + //ӡ + public const string deathMark = "83"; + //ҳΧ1 + public const string teleportAround = "84"; + //ʩ + public const string infCastRange = "85"; + //Ʊͷž+1 + public const string castRangePlusOne = "86"; + //1غʱ + public const string tempEmberOneRound = "87"; + //2غʱ + public const string tempEmberTwoRound = "88"; + //ȡЧ + public const string drawEffectCard = "89"; + //ʹѪ˺ + public const string doublebleedDamage = "90"; + //һ;Ƶĸ + public const string drawAndCopyCard = "91"; + //ͿɫΪ0 + public const string nextDyeingCardCostZero = "92"; + } diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Tool/MathTool.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Tool/MathTool.cs index 44549056..2af39efa 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scripts/Tool/MathTool.cs +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Tool/MathTool.cs @@ -134,22 +134,54 @@ public class MathTool public static (int x, int y) CubeToAxial(int q, int s, int r) { - + int x; int y = -r; - int x = q - (y + 1) / 2; + if (y % 2 == 0) + { + x = q - y / 2; + } + else + { + x = q - (y + 1) / 2; + } + return (x, y); } // תΪ public static (int q, int s, int r) AxialToCube(int x, int y) { - - int q = (y+1)/2+x; + int q; + if (y % 2 == 0) + { + q = x + y / 2; + } + else + { + q = x + (y+1) / 2; + } + + + int r = -y; int s = -q - r; return (q, s, r); } + // һСΪ size ɫб + public static List GenerateRandomPlayerColorList(int size) + { + System.Random rand = new System.Random(); + List result = new List(); + for (int i = 0; i < size; i++) + { + // PlayerColor ѡһԪ + int randomColor = Name.NodeColor.PlayerColor[rand.Next(Name.NodeColor.PlayerColor.Count)]; + result.Add(randomColor); + } + return result; + } + public static List<(int x, int y, int z)> TranslateHexesToNewOrigin(List<(int x, int y, int z)> hexList, (int x, int y, int z) newOrigin) { List<(int x, int y, int z)> translatedHexes = new List<(int x, int y, int z)>(); @@ -178,7 +210,7 @@ public class MathTool return (newX,newY,newZ); } - public static void keepNature(int number) + public static void keepNature(ref int number) { if (number < 0) { @@ -209,7 +241,8 @@ public class MathTool } else { - Console.WriteLine($"Ҫӵֵ '{value}' Ч޷ӡ"); + dictionary.Add(key, value); + //Console.WriteLine($"Ҫӵֵ '{value}' Ч޷ӡ"); } } diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Tool/Name.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Tool/Name.cs index c3748302..3e21b4e7 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scripts/Tool/Name.cs +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Tool/Name.cs @@ -1,5 +1,6 @@ using System.Collections; using System.Collections.Generic; +using System.Linq; using UnityEngine; public static class Name { @@ -51,6 +52,30 @@ public static class Name public const string LegacyNode_SuspiciousMushroom = "LegacyNode_SuspiciousMushroom"; public const string LegacyNode_SnakeGall = "LegacyNode_SnakeGall"; + public const string LegacyNode_BloodBorne = "LegacyNode_BloodBorne"; + public const string LegacyNode_WasteReconstructor = "LegacyNode_WasteReconstructor"; + public const string LegacyNode_BloodTax = "LegacyNode_BloodTax"; + public const string LegacyNode_Parasol = "LegacyNode_Parasol"; + public const string LegacyNode_Sneakers = "LegacyNode_Sneakers"; + public const string LegacyNode_BigBackpack = "LegacyNode_BigBackpack"; + public const string LegacyNode_FreeBullet = "LegacyNode_FreeBullet"; + public const string LegacyNode_PlatedSteelcaps = "LegacyNode_PlatedSteelcaps"; + public const string LegacyNode_Cheese = "LegacyNode_Cheese"; + public const string LegacyNode_SpeedLoader = "LegacyNode_SpeedLoader"; + public const string LegacyNode_LightningBoots = "LegacyNode_LightningBoots"; + public const string LegacyNode_MeatSaw = "LegacyNode_MeatSaw"; + public const string LegacyNode_Prism = "LegacyNode_Prism"; + public const string LegacyNode_ActivatedCarbon = "LegacyNode_ActivatedCarbon"; + public const string LegacyNode_PerpetualMotionPump = "LegacyNode_PerpetualMotionPump"; + public const string LegacyNode_PortableReactor = "LegacyNode_PortableReactor"; + public const string LegacyNode_Filter = "LegacyNode_Filter"; + public const string LegacyNode_NurturingBloom = "LegacyNode_NurturingBloom"; + public const string LegacyNode_PurityBadge = "LegacyNode_PurityBadge"; + public const string LegacyNode_ChaosTrigger = "LegacyNode_ChaosTrigger"; + public const string LegacyNode_AegisOfTheImmortal = "LegacyNode_AegisOfTheImmortal"; + public const string LegacyNode_Bipod = "LegacyNode_Bipod"; + public const string LegacyNode_PainContract = "LegacyNode_PainContract"; + @@ -101,7 +126,8 @@ public static class Name public const int White = 2; public const int Black = 5; public const int Metal = 6; - public static readonly List PlayerColor = new() { Red, Green, Blue }; + public const int Yellow = 7; + public static readonly List PlayerColor = new() { Red, Blue, Yellow }; public static readonly List EnemyColor = new() { Black }; } @@ -116,6 +142,8 @@ public static class Name intcolor = NodeColor.Green; break; case Color.Blue: intcolor = NodeColor.Blue; break; + case Color.Yellow: + intcolor = NodeColor.Yellow; break; case Color.White: intcolor = NodeColor.White; break; case Color.Black: @@ -125,6 +153,29 @@ public static class Name } return intcolor; } + + public static int stringAroundColorToint(string color) + { + int intcolor = 10; + switch (color) + { + case AroundColor.Red: + intcolor = NodeColor.Red; break; + case AroundColor.Green: + intcolor = NodeColor.Green; break; + case AroundColor.Blue: + intcolor = NodeColor.Blue; break; + case AroundColor.Yellow: + intcolor = NodeColor.Yellow; break; + case AroundColor.White: + intcolor = NodeColor.White; break; + case AroundColor.Black: + intcolor = NodeColor.Black; break; + case AroundColor.Metal: + intcolor = NodeColor.Metal; break; + } + return intcolor; + } public static string intColorTostring(int color) { string stringColor = Color .White ; @@ -136,6 +187,8 @@ public static class Name stringColor = Color.Green; break; case NodeColor.Blue: stringColor = Color.Blue; break; + case NodeColor.Yellow: + stringColor = Color.Yellow; break; case NodeColor.White: stringColor = Color.White; break; case NodeColor.Black: @@ -150,10 +203,25 @@ public static class Name public const string Red = "red"; public const string Green = "green"; public const string Blue = "blue"; + public const string Yellow = "yellow"; public const string White = "white"; public const string Black = "black"; public const string Metal = "metal"; - + public static readonly List AllColor = new() { Red, Green, Blue, Yellow ,White, Black , Metal }; + + } + + public static class AroundColor + { + public const string Red = "aroundred"; + public const string Green = "aroundgreen"; + public const string Blue = "aroundblue"; + public const string Yellow = "aroundyellow"; + public const string White = "aroundwhite"; + public const string Black = "aroundblack"; + public const string Metal = "aroundmetal"; + public static readonly List AllColor = new() { Red, Green, Blue, Yellow, White, Black, Metal }; + } public static class Faction @@ -171,6 +239,14 @@ public static class Name public const string node = "4"; } + public static class Regex + { + //1*** + public const string pattern1xxx = @"^1\d{3}$"; + //2*** + public const string pattern2xxx = @"^2\d{3}$"; + } + public static class CardFunctionString { public const string damage = "damage"; diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Tool/getNodeTools.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Tool/getNodeTools.cs index 3b42ee3c..5e51ea7a 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scripts/Tool/getNodeTools.cs +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Tool/getNodeTools.cs @@ -5,6 +5,8 @@ using System.Linq; using Unity.VisualScripting; using UnityEngine; using UnityEngine.UIElements; +using static TMPro.SpriteAssetUtilities.TexturePacker_JsonArray; +using static Unity.Collections.AllocatorManager; using static UnityEditor.Experimental.AssetDatabaseExperimental.AssetDatabaseCounters; using static UnityEditor.FilePathAttribute; @@ -303,6 +305,22 @@ public class getNodeTools return colorCount; } + public static int getPlayerAroundNodesCount(string color) + { + MapUnity playerNode = GameManager.Instance.playerOn; + HashSet set = new HashSet { playerNode }; + getCircleNode(set, 1); + int colorCount = 0; + foreach(MapUnity mapUnity in set) + { + if (mapUnity.whoColour.Equals(Name.stringAroundColorToint(color))) + { + colorCount++; + } + } + return colorCount; + } + public static bool tryGetNodeFroPlayer(MapUnity currentNode, HashSet results) { bool canPass = true; @@ -734,6 +752,39 @@ public class getNodeTools }*/ } + public static HashSet getNodesWithColor(string color) + { + var nodes = new HashSet(); + for (int i = 0; i < GameManager.Instance.X.Count; i++) + { + for (int j = 0; j < GameManager.Instance.X[i].Y.Count; j++) + { + if (GameManager.Instance.X[i].Y[j].whoColour.Equals(Name.stringColorToint(color))) + { + nodes.Add(GameManager.Instance.X[i].Y[j]); + } + + + } + } + return nodes; + } + + public static HashSet getNodesWithColor(string color,HashSet mapUnities) + { + var nodes = new HashSet(); + foreach(MapUnity mapUnity in mapUnities) + { + if (mapUnity.whoColour.Equals(Name.stringColorToint(color))) + { + nodes.Add(mapUnity); + } + } + + + return nodes; + } + public static void setEffectRangePreviewTest(CardOriginalData cardOriginalData, float euler, MapUnity currentNode, CardEntity cardEntity) { Debug.Log("currentNodeX" + currentNode.locationX + "currentNodeY" + currentNode.locationY); diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/manager/BuffDataManager.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/manager/BuffDataManager.cs index 296acf27..fa80248f 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scripts/manager/BuffDataManager.cs +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/manager/BuffDataManager.cs @@ -41,6 +41,20 @@ public class BuffDataManager : Singleton abnormalCondition.Add("50", new Buff_TempCastRange()); abnormalCondition.Add("51", new Buff_Armor()); abnormalCondition.Add("52", new Buff_Shedding()); + abnormalCondition.Add("57", new Buff_BleedDamage()); + abnormalCondition.Add("58", new Buff_Disable()); + abnormalCondition.Add("70", new Buff_CantShield()); + abnormalCondition.Add("74", new Buff_BleedHeal()); + abnormalCondition.Add("75", new Buff_Bleed4TurnCost()); + abnormalCondition.Add("76", new Buff_Bleed3TurnCost()); + abnormalCondition.Add("77", new Buff_NextCardCostHp()); + abnormalCondition.Add("78", new Buff_NextCardCostMinusOne()); + abnormalCondition.Add("79", new Buff_CantUserEffectCaed()); + abnormalCondition.Add("80", new Buff_DyeingCardCostMinusOne()); + abnormalCondition.Add("81", new Buff_NextDyeingCardRangeAddTwo()); + abnormalCondition.Add("82", new Buff_NextEffectCardDoubleSettle()); + abnormalCondition.Add("83", new Buff_DeathMark()); + abnormalCondition.Add("92", new Buff_NextDyeingCardCostZero()); abnormalCondition.Add("106", new Buff_flashPoint()); diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/manager/CardManager.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/manager/CardManager.cs index c69067ed..c2cd44c1 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scripts/manager/CardManager.cs +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/manager/CardManager.cs @@ -6,7 +6,9 @@ using System.Linq; using System.Text; using System.Text.RegularExpressions; using Newtonsoft.Json; +using TMPro; using Unity.VisualScripting; +using UnityEditor.Experimental.GraphView; using UnityEngine; using UnityEngine.Rendering; using static GameManager; @@ -122,10 +124,14 @@ public class CardManager : Singleton { currentOperation = component; } - else + else if(Name.Color.AllColor.Contains(component)) { currentNumber = getNodeTools.getNodesCount(component); } + else + { + currentNumber = getNodeTools.getPlayerAroundNodesCount(component); + } // ûвóʼֵΪ currentNumber if (result == 0 && string.IsNullOrEmpty(currentOperation)) @@ -222,7 +228,7 @@ public class CardManager : Singleton } public static void createCardImageMap() { - MapUnity currentNode = CardPictureManager.Instance.ToolX[3].Y[3]; + MapUnity currentNode = CardPictureManager.Instance.ToolX[4].Y[4]; foreach (CardOriginalData cardOriginalData in CardOriginalDataList.Instance.existCardOriginalDataList.Values) { Debug.Log("createcardimage!"); @@ -263,14 +269,19 @@ public class CardManager : Singleton { } } List<(int, int, int)> rotatedCubeList = new List<(int, int, int)>(); + for (int i = 0; i < cubeList.Count; i++) + { + Debug.Log("cubeListQ" + cubeList[i].Item1 + "cubeListS" + cubeList[i].Item2 + "cubeListR" + cubeList[i].Item3); + } rotatedCubeList = MathTool.RotateCoordinates(cubeList, intEuler); for (int i = 0; i < rotatedCubeList.Count; i++) { Debug.Log("rotatedCubeQ" + rotatedCubeList[i].Item1 + "rotatedCubeS" + rotatedCubeList[i].Item2 + "rotatedCubeR" + rotatedCubeList[i].Item3); } List<(int, int, int)> trueCubeList = new List<(int, int, int)>(); - Debug.Log("currentNodeQ" + currentNode.cubeQ + "currentNodeS" + currentNode.cubeS + "currentNodeR" + currentNode.cubeR); + Debug.Log("X" + currentNode.locationX + "Y:" + currentNode.locationY); trueCubeList = MathTool.TranslateHexesToNewOrigin(rotatedCubeList, (currentNode.cubeQ, currentNode.cubeS, currentNode.cubeR)); + List endNodeList= new List(); for (int i = 0; i < trueCubeList.Count; i++) { MapUnity endNode = new MapUnity(); @@ -280,7 +291,8 @@ public class CardManager : Singleton { Debug.Log("Ⱦɫɹ" + cardOriginalData.nodesColor[i]); endNode.switchColorWithoutFX(Name.stringColorToint(cardOriginalData.nodesColor[i])); - endNode.gameObject.SetActive(true); + endNode.gameObject.SetActive(true); + endNodeList.Add(endNode); //endNode.influenced = true; } } @@ -292,6 +304,26 @@ public class CardManager : Singleton int maxXDiff = xCoords.Max() - xCoords.Min(); int maxYDiff = yCoords.Max() - yCoords.Min(); + //ֱӼͼεļ + Vector3 sum = Vector3.zero; + foreach (MapUnity mapUnity in endNodeList) + { + Vector3 targetPosition = mapUnity.transform.position; + sum += mapUnity.transform.position; + } + Vector3 target=sum/ endNodeList.Count; + // q, r, s ƽֵ + int count = trueCubeList.Count; + int sumQ = trueCubeList.Sum(p => p.Item1); + int sumS = trueCubeList.Sum(p => p.Item2); + int sumR = trueCubeList.Sum(p => p.Item3); + double divisionAveQ = sumQ /count; + double divisionAveS = sumS / count; + double divisionAveR = sumR / count; + int aveQ= (int)Math.Round(divisionAveQ); + int aveS = (int)Math.Round(divisionAveS); + int aveR = (int)Math.Round(divisionAveR); + Debug.Log("QSRCOUNT" + count); // Ƚֵ int maxDiff = Math.Max(maxXDiff, maxYDiff); @@ -299,7 +331,10 @@ public class CardManager : Singleton Camera renderCamera = CardPictureManager.Instance.cameraObject.GetComponent(); renderCamera.targetTexture = renderTexture; Texture2D texture = new Texture2D(renderTexture.width, renderTexture.height, TextureFormat.ARGB32, false); - cameraAdjust(maxDiff, renderCamera, currentNode); + Debug.Log("Q" + aveQ + "S:" + aveS + "R:" + aveR); + MapUnity camearNode=changeCameraCenter(aveQ, aveS, aveR); + //cameraAdjust(maxDiff, renderCamera, camearNode); + cameraAdjustTest(maxDiff, renderCamera, target); RenderTexture.active = renderCamera.targetTexture; renderCamera.Render(); texture.ReadPixels(new Rect(0, 0, renderTexture.width, renderTexture.height), 0, 0); @@ -314,16 +349,42 @@ public class CardManager : Singleton } + public static MapUnity changeCameraCenter(int q,int s,int r) + { + GameObject camera = CardPictureManager.Instance.cameraObject; + MapUnity endNode = new MapUnity(); + endNode = getNodeTools.getToolNodeWithCube(q, s, r); + Debug.Log("X" + endNode.locationX+"Y:"+endNode.locationY); + /*Vector3 targetPosition = endNode.transform.position; + camera.transform.position = targetPosition + new Vector3(0, 10.0f, 0);*/ + return endNode; + } + public static void cameraAdjust(int distance, Camera camera,MapUnity target) { // ֵӦ뷶Χ float minDistance = 1.5f; float maxDistance = 12f; Debug.Log("distance" + distance); - float newDistance = Mathf.Lerp(minDistance, maxDistance, distance / 20f); // ֵ100 + float newDistance = Mathf.Lerp(minDistance, maxDistance, distance / 15f); // ֵ100 Debug.Log("newDistance" + newDistance); + camera.transform.position = target.transform.position + new Vector3(0, 10.0f, 0); Vector3 direction = (camera.transform.position - target.transform.position).normalized; camera.transform.position = target.transform.position + direction * newDistance; camera.orthographicSize = newDistance; } + + public static void cameraAdjustTest(int distance, Camera camera, Vector3 target) + { + // ֵӦ뷶Χ + float minDistance = 1.5f; + float maxDistance = 12f; + Debug.Log("distance" + distance); + float newDistance = Mathf.Lerp(minDistance, maxDistance, distance / 15f); // ֵ100 + Debug.Log("newDistance" + newDistance); + camera.transform.position = target + new Vector3(0, 10.0f, 0); + Vector3 direction = (camera.transform.position - target).normalized; + camera.transform.position = target + direction * newDistance; + camera.orthographicSize = newDistance; + } } diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/manager/DestructionManager.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/manager/DestructionManager.cs index 81347ab8..4fd7b4ad 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scripts/manager/DestructionManager.cs +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/manager/DestructionManager.cs @@ -5,6 +5,7 @@ using System.Text.RegularExpressions; using UnityEngine; using UnityEngine.Rendering; using UnityEngine.Windows; +using static Name; public class DestructionManager : Singleton { @@ -17,6 +18,11 @@ public class DestructionManager : Singleton } else { + if (LegacyManager.Instance.isUseful(Name.Legacy.LegacyNode_PortableReactor)) + { + StartCoroutine(TurnMaster.Instance.drawCards(1)); + yield return StartCoroutine(TurnMaster.Instance.MoveCards()); + } TurnMaster.Instance.usedCard.deleteCardList.Add(target.GetComponent().CardId); } TurnMaster.Instance.handCard.cardEntityList.Remove(target.GetComponent()); @@ -37,7 +43,7 @@ public class DestructionManager : Singleton foreach (string condition in cardOriginalData.conditionAndFunctionVal.Keys) { Debug.Log("condition" + condition); - Match match = Regex.Match(condition, pattern); + Match match = System.Text.RegularExpressions.Regex.Match(condition, pattern); if (match.Success) { Debug.Log("matchɹ"); @@ -98,6 +104,7 @@ public class DestructionManager : Singleton { bool canAdv = GameManager.Instance.SyncColourCountUI(); int leftCost = GameManager.Instance.playerState.currentCost; + string trueCostType; /*if (cardOriginalData.FunctionVal.ContainsKey(CardFunction.xCost)) { GameManager.Instance.playerState.currentCost = 0; @@ -119,13 +126,27 @@ public class DestructionManager : Singleton } else {*/ - int trueCost = cardOriginalData.Cost; - //ɫؿЧ - if (MapUnityManager.Instance.isPlayerOn(Name.NodeColor.Black)) + if (Usermanager.playerAbnormalCondition.ContainsKey(AbnormalCondition.nextDyeingCardRangeAddTwo)&& cardOriginalData.CardType.Equals(Name.CardType.dyeing)) + { + Usermanager.playerAbnormalCondition[AbnormalCondition.nextDyeingCardRangeAddTwo].value -= 1; + } + if (Usermanager.playerAbnormalCondition.ContainsKey(AbnormalCondition.tempCastRange)) { - trueCost++; + Usermanager.playerAbnormalCondition[AbnormalCondition.tempCastRange].value--; } - switch (cardOriginalData.costType) + if (cardOriginalData.CardType.Equals(Name.CardType.dyeing)) + { + LegacyManager.Instance.tryAddCount(Name.Legacy.LegacyNode_FreeBullet,1); + } + if (cardOriginalData.CardType.Equals(Name.CardType.effect)) + { + LegacyManager.Instance.tryAddCount(Name.Legacy.LegacyNode_SpeedLoader, 1); + LegacyManager.Instance.tryAddCount(Name.Legacy.LegacyNode_LightningBoots, 1); + } + + int trueCost; + (trueCost, trueCostType) = CardResourcesManager.Instance.getCardCostForSettle(cardOriginalData); + switch (trueCostType) { case Name.CostType.energy: GameManager.Instance.playerState.currentCost -= trueCost; @@ -143,12 +164,12 @@ public class DestructionManager : Singleton //} yield return StartCoroutine(settleStage2(cardOriginalData, influencePreviewPool, cardIndex, leftCost, targetNode)); - if (Usermanager.playerAbnormalCondition.ContainsKey(AbnormalCondition.doubleSettle)) + if (Usermanager.playerAbnormalCondition.ContainsKey(AbnormalCondition.nextEffectCardDoubleSettle)&&cardOriginalData.CardType.Equals(Name.CardType.effect)) { - Usermanager.playerAbnormalCondition[AbnormalCondition.doubleSettle].value--; - if (Usermanager.playerAbnormalCondition[AbnormalCondition.doubleSettle].value <= 0) + Usermanager.playerAbnormalCondition[AbnormalCondition.nextEffectCardDoubleSettle].value--; + if (Usermanager.playerAbnormalCondition[AbnormalCondition.nextEffectCardDoubleSettle].value <= 0) { - Usermanager.playerAbnormalCondition.Remove(AbnormalCondition.doubleSettle); + Usermanager.playerAbnormalCondition.Remove(AbnormalCondition.nextEffectCardDoubleSettle); } yield return StartCoroutine(settleStage2(cardOriginalData, influencePreviewPool, cardIndex, leftCost, targetNode)); } @@ -188,7 +209,13 @@ public class DestructionManager : Singleton { yield return StartCoroutine(SettlementManager.Instance.settle(cardOriginalData, influencePreviewPool, cardIndex, targetNode)); } - + if (LegacyManager.Instance.relicClassNameList.Contains(Name.Legacy.LegacyNode_PurityBadge)) + { + LegacyManager.Instance.legacyNodesList[Name.Legacy.LegacyNode_PurityBadge].isUseful = true; + } + + + } diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/manager/MapUnityManager.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/manager/MapUnityManager.cs index 2cee6d61..fb33b447 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scripts/manager/MapUnityManager.cs +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/manager/MapUnityManager.cs @@ -17,6 +17,8 @@ public class MapUnityManager : Singleton public int metalNodeCount; + public int yellowNodeCount; + public int playerNodeCount; public int neutralNodeCount; @@ -102,7 +104,7 @@ public class MapUnityManager : Singleton { if(GameManager .Instance .complete ==true ) { - int red = 0, blue = 0, green = 0, white = 0, black = 0,metal=0; + int red = 0, blue = 0, green = 0, white = 0, black = 0,metal=0,yellow=0; for (int i = 0; i < GameManager.Instance.X.Count; i++) { for (int j = 0; j < GameManager.Instance.X[i].Y.Count; j++) @@ -127,11 +129,15 @@ public class MapUnityManager : Singleton case Name.NodeColor.Metal: metal++; break; + case Name.NodeColor.Yellow: + yellow++; + break; } } } redNodeCount = red; blueNodeCount = blue; greenNodeCount = green; whiteNodeCount = white; blackNodeCount = black;metalNodeCount =metal; - playerNodeCount = redNodeCount + blueNodeCount + greenNodeCount; + yellowNodeCount= yellow; + playerNodeCount = redNodeCount + blueNodeCount + greenNodeCount+yellowNodeCount; neutralNodeCount = whiteNodeCount + metalNodeCount; enemyNodeCount = blackNodeCount; @@ -209,4 +215,14 @@ public class MapUnityManager : Singleton mapUnity.playerMark.meshRenderer.material = mapUnity.red; } } -} + + public void getCastPoolForInfRange() + { + castPool= getNodeTools.getAllCanUseNode(); + foreach (MapUnity mapUnity in castPool) + { + mapUnity.PlayerInfluenced(castPool); + mapUnity.playerMark.meshRenderer.material = mapUnity.red; + } + } + } diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/manager/MapUnitySettleManager.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/manager/MapUnitySettleManager.cs index 26ad5638..2559d2b4 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scripts/manager/MapUnitySettleManager.cs +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/manager/MapUnitySettleManager.cs @@ -72,8 +72,8 @@ public class MapUnitySettleManager : Singleton public void MapGridsBeginSettle() { - PlayerMudGridBeginSettle(1); + } public void MapGridsEndSettle() diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/manager/SettlementManager.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/manager/SettlementManager.cs index 74203025..959ebe69 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scripts/manager/SettlementManager.cs +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/manager/SettlementManager.cs @@ -1,9 +1,11 @@ using System; using System.Collections; using System.Collections.Generic; +using System.Linq; using Unity.VisualScripting; using UnityEditor.Experimental.GraphView; using UnityEngine; +using static Name; public class SettlementManager : Singleton @@ -23,6 +25,36 @@ public class SettlementManager : Singleton } } } + + public void doubleBleed(List influencePreviewPool) + { + if (influencePreviewPool[0].enemyNode != null && influencePreviewPool[0].enemyNode.EnemyState.abnormalCondition.ContainsKey(AbnormalCondition.bleed)) + { + int originCount = influencePreviewPool[0].enemyNode.EnemyState.abnormalCondition[AbnormalCondition.bleed].value; + int result = originCount * 2; + influencePreviewPool[0].enemyNode.EnemyState.abnormalCondition[AbnormalCondition.bleed].value=result; + } + } + + public void doubleBleedDamage() + { + if (Usermanager.playerAbnormalCondition.ContainsKey(AbnormalCondition.bleedDamage)) + { + int val= Usermanager.playerAbnormalCondition[AbnormalCondition.bleedDamage].value; + val= val * 2; + Usermanager.playerAbnormalCondition[AbnormalCondition.bleedDamage].value=val; + } + } + + public void tripleBleed(List influencePreviewPool) + { + if (influencePreviewPool[0].enemyNode != null && influencePreviewPool[0].enemyNode.EnemyState.abnormalCondition.ContainsKey(AbnormalCondition.bleed)) + { + int originCount = influencePreviewPool[0].enemyNode.EnemyState.abnormalCondition[AbnormalCondition.bleed].value; + int result = originCount * 3; + influencePreviewPool[0].enemyNode.EnemyState.abnormalCondition[AbnormalCondition.bleed].value = result; + } + } //˺ //Ⱦɫ @@ -273,22 +305,50 @@ public class SettlementManager : Singleton GameManager.Instance.playerState.currentCost += nodeCount/val; } - /* private void consumePlayerNodesForHealthWork(List influencePreviewPool) + private void settleHalfBleed(List influencePreviewPool) { - int successNodeCount = 0; - Debug.Log("influencePreviewPool" + influencePreviewPool.Count); - for (int i = 0; i < influencePreviewPool.Count; i++) + if (influencePreviewPool[0].enemyNode != null && influencePreviewPool[0].enemyNode.EnemyState.abnormalCondition.ContainsKey(AbnormalCondition.bleed)) { - if(influencePreviewPool[i].whoColour == MapUnity.WhoColour.playerColour) + int originCount = influencePreviewPool[0].enemyNode.EnemyState.abnormalCondition[AbnormalCondition.bleed].value; + int result = originCount/2; + int settleCount = originCount = result; + for (int i = 0; i < settleCount; i++) { - successNodeCount++; - influencePreviewPool[i].whoColour= MapUnity.WhoColour.noneColour; - Debug.Log("successNodeCount" + successNodeCount); + influencePreviewPool[0].enemyNode.bleedRealize(); } + + } - GameManager.Instance.SyncColourCountUI(); - Usermanager.Instance.recoverHp(successNodeCount); - }*/ + } + + private void settleAllBleed(List influencePreviewPool) + { + if (influencePreviewPool[0].enemyNode != null && influencePreviewPool[0].enemyNode.EnemyState.abnormalCondition.ContainsKey(AbnormalCondition.bleed)) + { + int originCount = influencePreviewPool[0].enemyNode.EnemyState.abnormalCondition[AbnormalCondition.bleed].value; + for (int i = 0; i < originCount; i++) + { + influencePreviewPool[0].enemyNode.bleedRealize(); + } + } + } + + /* private void consumePlayerNodesForHealthWork(List influencePreviewPool) + { + int successNodeCount = 0; + Debug.Log("influencePreviewPool" + influencePreviewPool.Count); + for (int i = 0; i < influencePreviewPool.Count; i++) + { + if(influencePreviewPool[i].whoColour == MapUnity.WhoColour.playerColour) + { + successNodeCount++; + influencePreviewPool[i].whoColour= MapUnity.WhoColour.noneColour; + Debug.Log("successNodeCount" + successNodeCount); + } + } + GameManager.Instance.SyncColourCountUI(); + Usermanager.Instance.recoverHp(successNodeCount); + }*/ private void clearAllAbnormalConditons() { @@ -403,11 +463,24 @@ public class SettlementManager : Singleton attackCardOriginalDataList.Add(cardId); } } - TurnMaster.Instance.createCardWithoutMove(targetCardNum); + //TurnMaster.Instance.createCardWithoutMove(targetCardNum); CardActiveSort.Instance.ReflashCardPoint(); } + /*private void addNewestCardToHand() + { + int targetCardNum = 0; + int handCardCount = TurnMaster.Instance.handCard.cardEntityList.Count; + if(handCardCount== TurnMaster.Instance.handCard.maxHandCard) + { + return ; + } + TurnMaster.Instance.createCardWithoutMove(targetCardNum); + CardActiveSort.Instance.ReflashCardPoint(); + + }*/ + private void categorizeCardsByCarType() { @@ -439,26 +512,66 @@ public class SettlementManager : Singleton } } - - private void repel(List influencePreviewPool, MapUnity targetNode,int count) + private void teleportAround(List influencePreviewPool) + { + HashSet targets = new HashSet { influencePreviewPool[0] }; + getNodeTools.getCircleNode(targets, 1); + HashSet targetNode = MathTool.GetRandomElements(targets, 1); + + getNodeTools.playerTeleportToNode(targetNode.ElementAt(0)); + } + + + private void repelFromPlayer (List influencePreviewPool, MapUnity targetNode,int count) { - List pool= new List(influencePreviewPool); + targetNode = GameManager.Instance.playerOn; + List pool= new List(influencePreviewPool); pool.Remove(targetNode); List sortedPool = MathTool.sortByCubeDistance(pool, targetNode); foreach (MapUnity mapUnity in sortedPool) { if (mapUnity.enemyNode != null&& mapUnity.enemyNode.enemyType == EnemyNode.EnemyType.enemy) { - (int q,int s,int r)=MathTool.findRepelNode(mapUnity, targetNode); - MapUnity result = getNodeTools.getNodeWithCube(q, s, r); - GameObject enemy = mapUnity.enemyNode.GameObject(); - Debug.Log(enemy); - enemyMoveToNode(enemy, result, mapUnity.enemyNode); + MapUnity repelNode = mapUnity; + for (int i = 0; i < count; i++) + { + + (int q, int s, int r) = MathTool.findRepelNode(repelNode, targetNode); + MapUnity result = getNodeTools.getNodeWithCube(q, s, r); + GameObject enemy = repelNode.enemyNode.GameObject(); + Debug.Log(enemy); + enemyMoveToNode(enemy, result, repelNode.enemyNode); + repelNode = result; + } + } } } + private void repelFromNode(List influencePreviewPool, MapUnity targetNode, int count) + { + List pool = new List(influencePreviewPool); + pool.Remove(targetNode); + List sortedPool = MathTool.sortByCubeDistance(pool, targetNode); + foreach (MapUnity mapUnity in sortedPool) + { + if (mapUnity.enemyNode != null && mapUnity.enemyNode.enemyType == EnemyNode.EnemyType.enemy) + { + MapUnity repelNode = mapUnity; + for (int i = 0; i < count; i++) + { + + (int q, int s, int r) = MathTool.findRepelNode(repelNode, targetNode); + MapUnity result = getNodeTools.getNodeWithCube(q, s, r); + GameObject enemy = repelNode.enemyNode.GameObject(); + Debug.Log(enemy); + enemyMoveToNode(enemy, result, repelNode.enemyNode); + repelNode = result; + } + } + } + } private void pullFirstEnemyToSelf(List influencePreviewPool) { /*List ememyList = new List(); @@ -567,7 +680,7 @@ public class SettlementManager : Singleton else if (val < 0) { int trueStep = GameManager.Instance.playerState.currentStepRange + val; - MathTool.keepNature(trueStep); + MathTool.keepNature(ref trueStep); GameManager.Instance.playerState.currentStepRange = trueStep; } } @@ -618,10 +731,10 @@ public class SettlementManager : Singleton } else {*/ - trueFunctionVal.AddRange(cardOriginalData.testTrueFunctionVal); + trueFunctionVal.AddRange(cardOriginalData.TrueFunctionVal); foreach (KeyValuePair kvp in trueFunctionVal) { - Debug.Log("" + kvp.Key); + Debug.Log("" + kvp.Key+"ֵ"+kvp.Value); } //ƲȽ foreach (KeyValuePair kvp in trueFunctionVal) @@ -640,6 +753,42 @@ public class SettlementManager : Singleton } break; + case CardFunction.drawDyeingCard: + if (Usermanager.playerAbnormalCondition.ContainsKey(AbnormalCondition.banDrawCard)) + { + } + else + { + StartCoroutine(TurnMaster.Instance.drawDyeingCards(int.Parse(kvp.Value))); + + yield return StartCoroutine(TurnMaster.Instance.MoveCards()); + + } + break; + case CardFunction.drawEffectCard: + if (Usermanager.playerAbnormalCondition.ContainsKey(AbnormalCondition.banDrawCard)) + { + } + else + { + StartCoroutine(TurnMaster.Instance.drawEffectCards(int.Parse(kvp.Value))); + + yield return StartCoroutine(TurnMaster.Instance.MoveCards()); + + } + break; + case CardFunction.drawAndCopyCard: + if (Usermanager.playerAbnormalCondition.ContainsKey(AbnormalCondition.banDrawCard)) + { + } + else + { + StartCoroutine(TurnMaster.Instance.drawAndCopyOneCard()); + + yield return StartCoroutine(TurnMaster.Instance.MoveCards()); + + } + break; } } @@ -650,6 +799,19 @@ public class SettlementManager : Singleton case CardFunction.cardDamage: damageWork(int.Parse(kvp.Value), influencePreviewPool, pierceNum); break; + case CardFunction.damagexy: + string[] values = kvp.Value.Split("-"); + int damageVal=int.Parse(values[0]); + int damageCount = int.Parse(values[1]); + for (int i = 0; i < damageCount; i++) + { + damageWork(damageVal, influencePreviewPool, pierceNum); + } + break; + case CardFunction.damageForRedNode: + List redList = new List(getNodeTools.getNodesWithColor(Name.Color.Red)); + damageWork(int.Parse(kvp.Value), redList, pierceNum); + break; case CardFunction.nodeDiffDamage: if (GameManager.Instance.getNodeDiffForPlayer() > 0) { @@ -663,6 +825,54 @@ public class SettlementManager : Singleton case CardFunction.cardShield: Usermanager.Instance.Shield += Usermanager.Instance.ShieldCalculation(int.Parse(kvp.Value)); break; + case CardFunction.halfHpShield: + int shidldVal =(int)GameManager.Instance.playerState.maxHP / 2; + Usermanager.Instance.Shield += Usermanager.Instance.ShieldCalculation(shidldVal); + break; + case CardFunction.turnYellowNodesToShield: + List yellowList = new(getNodeTools.getNodesWithColor(Name.Color.Yellow)); + foreach(MapUnity mapUnity in yellowList) + { + mapUnity.switchColor(Name.NodeColor.White); + } + Usermanager.Instance.Shield += Usermanager.Instance.ShieldCalculation(yellowList.Count); + break; + case CardFunction.turnHalfYellowNodesToShield: + List yellowListA = new(getNodeTools.getNodesWithColor(Name.Color.Yellow)); + yellowListA.Shuffle(); + for(int i = 0; i < yellowListA.Count/2;) + { + yellowListA[i].switchColor(Name.NodeColor.White); + } + Usermanager.Instance.Shield += Usermanager.Instance.ShieldCalculation(yellowListA.Count); + break; + + case CardFunction.turn3RedNodesToEmber: + HashSet nearby2Nodes= new HashSet(); + HashSet nearby2RedNodes = new HashSet(); + nearby2Nodes.Add(GameManager.Instance.playerOn); + getNodeTools.getCircleNode(nearby2Nodes, 2); + nearby2RedNodes = getNodeTools.getNodesWithColor(Name.Color.Red, nearby2Nodes); + foreach (MapUnity mapUnity in nearby2Nodes) + { + mapUnity.switchColor(Name.NodeColor.White); + } + int emberCount=nearby2RedNodes.Count/3; + Usermanager.Instance.SufferPlayerAbnormalCondition(AbnormalCondition.angerUpperDamage, emberCount); + break; + case CardFunction.turn2RedNodesToEmber: + HashSet nearby2NodesA = new HashSet(); + HashSet nearby2RedNodesA = new HashSet(); + nearby2NodesA.Add(GameManager.Instance.playerOn); + getNodeTools.getCircleNode(nearby2NodesA, 2); + nearby2RedNodes = getNodeTools.getNodesWithColor(Name.Color.Red, nearby2NodesA); + foreach (MapUnity mapUnity in nearby2NodesA) + { + mapUnity.switchColor(Name.NodeColor.White); + } + int emberCountA = nearby2RedNodes.Count / 2; + Usermanager.Instance.SufferPlayerAbnormalCondition(AbnormalCondition.angerUpperDamage, emberCountA); + break; case CardFunction.posion: case CardFunction.weak: case CardFunction.coma: @@ -673,8 +883,26 @@ public class SettlementManager : Singleton case CardFunction.vulnerable: case CardFunction.banStep: case CardFunction.wet: + case CardFunction.disable: + case CardFunction.bleedHeal: + case CardFunction.deathMark: abnormalConditionWork(kvp.Key, int.Parse(kvp.Value), influencePreviewPool); break; + case CardFunction.doubleBleed: + doubleBleed(influencePreviewPool); + break; + case CardFunction.tripleBleed: + tripleBleed(influencePreviewPool); + break; + case CardFunction.settleHalfBleed: + settleHalfBleed(influencePreviewPool); + break; + case CardFunction.settleAllBleed: + settleAllBleed(influencePreviewPool); + break; + case CardFunction.bleedForRedNode: + abnormalConditionWork(CardFunction.bleed, int.Parse(kvp.Value), new List(getNodeTools.getNodesWithColor(Name.Color.Red))); + break; case CardFunction.step: currentStepChange(int.Parse(kvp.Value)); break; @@ -691,7 +919,7 @@ public class SettlementManager : Singleton // break; case CardFunction.repel: - repel(influencePreviewPool, targetNode,int.Parse(kvp.Value)); + repelFromPlayer(influencePreviewPool, targetNode,int.Parse(kvp.Value)); break; case CardFunction.dyeingAround: dyeingAroundWork(influencePreviewPool); @@ -711,6 +939,9 @@ public class SettlementManager : Singleton break; case CardFunction.teleport: break; + case CardFunction.teleportAround: + teleportAround(new List { targetNode }); + break; case CardFunction.pullFirstEnemyToSelf: pullFirstEnemyToSelf(influencePreviewPool); break; @@ -719,9 +950,22 @@ public class SettlementManager : Singleton case CardFunction.recoverHp: Usermanager.Instance.recoverHp(int.Parse(kvp.Value)); break; + case CardFunction.lostHp: + Usermanager.Instance.lostHp(int.Parse(kvp.Value)); + break; case CardFunction.spreadColorToAround: spreadColorToAround(int.Parse(kvp.Value),targetNode); break; + case CardFunction.shieldToDamage: + damageWork(Usermanager.Instance.Shield, influencePreviewPool, pierceNum); + break; + case CardFunction.ifBleedThenShield: + if (influencePreviewPool[0].enemyNode!=null&& + influencePreviewPool[0].enemyNode.EnemyState.abnormalCondition.ContainsKey(AbnormalCondition.bleed)) + { + Usermanager.Instance.Shield += Usermanager.Instance.ShieldCalculation(int.Parse(kvp.Value)); + } + break; case CardFunction.ember: case CardFunction.enhanceShield: case CardFunction.firm: @@ -734,9 +978,24 @@ public class SettlementManager : Singleton case CardFunction.nextTurnExtraOneCost: case CardFunction.immunity: case CardFunction.tempCastRange: + case CardFunction.bleedDamage: + case CardFunction.cantShield: + case CardFunction.bleed4TurnCost: + case CardFunction.bleed3TurnCost: + case CardFunction.nextCardCostHp: + case CardFunction.nextCardCostMinusOne: + case CardFunction.cantUserEffectCaed: + case CardFunction.dyeingCardCostMinusOne: + case CardFunction.nextDyeingCardRangeAddTwo: + case CardFunction.nextEffectCardDoubleSettle: Usermanager.Instance.SufferPlayerAbnormalCondition(kvp.Key, int.Parse(kvp.Value)); break; + case CardFunction.doublebleedDamage: + doubleBleedDamage(); + break; case CardFunction.discard: + LegacyManager.Instance.tryUseLegacy(Name.Legacy.LegacyNode_WasteReconstructor); + LegacyManager.Instance.tryUseLegacy(Name.Legacy.LegacyNode_BigBackpack); yield return StartCoroutine(TurnMaster.Instance.randomDiscard(int.Parse(kvp.Value))); //yield return StartCoroutine(TurnMaster.Instance.MoveCards()); /*yield return new WaitForEndOfFrame(); @@ -766,6 +1025,39 @@ public class SettlementManager : Singleton case CardFunction.bleed: abnormalConditionWork(kvp.Value, int.Parse(kvp.Value), influencePreviewPool); break; + case CardFunction.turnRedNodesToBleed: + HashSet targetRedNodes = new HashSet { GameManager.Instance.playerOn }; + HashSet targetNodes = new HashSet { GameManager.Instance.playerOn }; + getNodeTools.getCircleNode(targetRedNodes, 2); + getNodeTools.getCircleNode(targetNodes, 1); + int bleedCount = 0; + foreach (MapUnity mapUnity in targetRedNodes) + { + if (Name.NodeColor.PlayerColor.Contains(mapUnity.whoColour)) + { + bleedCount++; + mapUnity.switchColor(Name.NodeColor.White); + } + + } + abnormalConditionWork(AbnormalCondition.bleed, bleedCount, new List(targetNodes)); + break; + case CardFunction.turnRedNodesToBleedInTwoCirCle: + HashSet targetRedNodesA = new HashSet { GameManager.Instance.playerOn }; + HashSet targetNodesA = new HashSet { GameManager.Instance.playerOn }; + getNodeTools.getCircleNode(targetRedNodesA, 2); + getNodeTools.getCircleNode(targetNodesA, 2); + int bleedCountA = 0; + foreach (MapUnity mapUnity in targetRedNodesA) + { + if (Name.NodeColor.PlayerColor.Contains(mapUnity.whoColour)) + { + bleedCountA++; + mapUnity.switchColor(Name.NodeColor.White); + } + } + abnormalConditionWork(AbnormalCondition.bleed, bleedCountA, new List(targetNodesA)); + break; } } @@ -802,7 +1094,7 @@ public class SettlementManager : Singleton { Dictionary trueFunctionVal = new Dictionary(); - trueFunctionVal.AddRange(cardOriginalData.testTrueFunctionVal); + trueFunctionVal.AddRange(cardOriginalData.TrueFunctionVal); Usermanager.Instance.expectDamage = 0; foreach (KeyValuePair kvp in trueFunctionVal) { diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/manager/Usermanager.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/manager/Usermanager.cs index 1dca0ed3..b1c9d1c0 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scripts/manager/Usermanager.cs +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/manager/Usermanager.cs @@ -123,6 +123,13 @@ public class Usermanager : Singleton float trueHp = Math.Min(recoverHp, GameManager.Instance.playerState.maxHP); GameManager.Instance.playerState.currentHP = trueHp; } + + public void lostHp(int val) + { + float trueHp = GameManager.Instance.playerState.currentHP-val; + GameManager.Instance.playerState.currentHP = trueHp; + checkDeath(); + } public void SufferPlayerAbnormalCondition(string condition, int value) { if (immunityCal(condition,value)) @@ -311,7 +318,6 @@ public class Usermanager : Singleton AbnormalConditionEndCheck(); RefreshPlayerBuffIcon(); } - } public void PlayerTurnBeginSettle() @@ -355,6 +361,10 @@ public class Usermanager : Singleton { if (playerAbnormalCondition[key].CheckValue() <= 0) { + if(playerAbnormalCondition[key].Equals(AbnormalCondition.tempEmberOneRound)|| playerAbnormalCondition[key].Equals(AbnormalCondition.tempEmberOneRound)) + { + //SufferPlayerAbnormalCondition(AbnormalCondition.angerUpperDamage + } playerAbnormalCondition.Remove(key); } } @@ -446,9 +456,18 @@ public class Usermanager : Singleton // if(GameManager.Instance.playerState.currentHP<=0) { - GameManager.Instance.DeathPanel.SetActive(true); - HideUIBarManager.Instance.HideUIBar(); + if (LegacyManager.Instance.isUseful(Name.Legacy.LegacyNode_AegisOfTheImmortal)) + { + LegacyManager.Instance.legacyNodesList[Name.Legacy.LegacyNode_AegisOfTheImmortal].Use(); + } + else + { + GameManager.Instance.DeathPanel.SetActive(true); + HideUIBarManager.Instance.HideUIBar(); + } + } + } public void SufferDamage(int damage,EnemyNode enemyNode) @@ -456,7 +475,7 @@ public class Usermanager : Singleton if (MapUnityManager.Instance.isPlayerOn(Name.NodeColor.Blue)) { damage -= 2; - MathTool.keepNature(damage); + MathTool.keepNature(ref damage); } if (enemyNode != null) { @@ -478,12 +497,29 @@ public class Usermanager : Singleton { shield -= trueDamage; } + checkDeath(); + + } + + public void checkDeath() + { // if (GameManager.Instance.playerState.currentHP <= 0) { - GameManager.Instance.DeathPanel.SetActive(true); - HideUIBarManager.Instance.HideUIBar(); + if (GameManager.Instance.playerState.currentHP <= 0) + { + if (LegacyManager.Instance.isUseful(Name.Legacy.LegacyNode_AegisOfTheImmortal)) + { + LegacyManager.Instance.legacyNodesList[Name.Legacy.LegacyNode_AegisOfTheImmortal].Use(); + } + else + { + GameManager.Instance.DeathPanel.SetActive(true); + HideUIBarManager.Instance.HideUIBar(); + } + + } } } @@ -531,6 +567,10 @@ public class Usermanager : Singleton { angerUpperDamage = playerAbnormalCondition[AbnormalCondition.angerUpperDamage].value; } + if (LegacyManager.Instance.isUseful(Name.Legacy.LegacyNode_ChaosTrigger)) + { + damage += 2; + } if(playerAbnormalCondition.ContainsKey(AbnormalCondition.weak)) { damagemultiply = 0.75f; @@ -539,7 +579,7 @@ public class Usermanager : Singleton damagemultiply = 1f; } damage = (int)((damage + angerUpperDamage ) * damagemultiply); - MathTool.keepNature(damage); + MathTool.keepNature(ref damage); return damage; } @@ -553,9 +593,14 @@ public class Usermanager : Singleton { shieldValue += playerAbnormalCondition[AbnormalCondition.shieldUpperValue].value; } + shield += shieldValue; - MathTool.keepNature(shield); + if (playerAbnormalCondition.ContainsKey(AbnormalCondition.cantShield)) + { + shield = 0; + } + MathTool.keepNature(ref shield); return shield; } @@ -581,7 +626,7 @@ public class Usermanager : Singleton stepRangeMultiply = 1f; } stepRange = (int)((stepRange + addStepRange) *stepRangeMultiply); - MathTool.keepNature(stepRange); + MathTool.keepNature(ref stepRange); return stepRange; } //˼㺯 diff --git a/ColorlessWorld-2024-4-2/Assets/StreamingAssets/Relic.csv b/ColorlessWorld-2024-4-2/Assets/StreamingAssets/Relic.csv index 294419a9..a8929dde 100644 --- a/ColorlessWorld-2024-4-2/Assets/StreamingAssets/Relic.csv +++ b/ColorlessWorld-2024-4-2/Assets/StreamingAssets/Relic.csv @@ -1,8 +1,23 @@ -1001,LegacyNode_AgnisTorch,RelicsIcon/LegacyNode_AgnisTorch,阿耆尼的火炬,火种触发改为8层,与沃肯的锤子互相替换 -1002,LegacyNode_VulcanHammer,RelicsIcon/LegacyNode_VulcanHammer,沃肯的锤子,火种触发改为15层,触发伤害改为25,与阿耆尼的祝福互相替换 -1003,LegacyNode_AncientSilverCoin,RelicsIcon/LegacyNode_AncientSilverCoin,古老银币,第一回合额外拥有1点费用 -1004,LegacyNode_EnchantedConch,RelicsIcon/LegacyNode_EnchantedConch,神奇海螺,通过潮湿触发眩晕时候,额外附加一层易伤 -1005,LegacyNode_GoldVines,RelicsIcon/LegacyNode_GoldVines,黄金藤曼,每当获得金币时,恢复2点生命值 -1006,LegacyNode_Starfish,RelicsIcon/LegacyNode_Starfish,海星,蓝色的判定宽松1 -1007,LegacyNode_SuspiciousMushroom,RelicsIcon/LegacyNode_SuspiciousMushroom,可疑的蘑菇,进行绿色染色的时候对怪物施加一层中毒 -1008,LegacyNode_SnakeGall,RelicsIcon/LegacyNode_SnakeGall,蛇胆,如果怪物带着超过10层中毒死去,那么玩家回复1点生命 +5001,LegacyNode_BloodBorne,RelicsIcon/LegacyNode_AgnisTorch,鲜血圣杯,红被改变颜色时,对当前地块施加4层流血 +5002,LegacyNode_WasteReconstructor,RelicsIcon/LegacyNode_VulcanHammer,废物再生器,每有卡牌被丢弃时,在随机敌人脚下生成红 +5003,LegacyNode_BloodTax,RelicsIcon/LegacyNode_AncientSilverCoin,血税,每有一个单位死亡,流血伤害+1 +5004,LegacyNode_Parasol,RelicsIcon/LegacyNode_EnchantedConch,阳伞,"玩家回合涂色格数>9,获得7点护盾" +5005,LegacyNode_Sneakers,RelicsIcon/LegacyNode_GoldVines,运动鞋,每当有单位死亡,移动力恢复至上限,1回合只触发一次 +5007,LegacyNode_BigBackpack,RelicsIcon/LegacyNode_Starfish,大背包,每丢弃一张牌获得3点护甲 +5008,LegacyNode_FreeBullet,RelicsIcon/LegacyNode_SuspiciousMushroom,免费子弹,第5次释放的涂色牌消耗为0 +5009,LegacyNode_PlatedSteelcaps,RelicsIcon/LegacyNode_SuspiciousMushroom,布甲鞋,每移动1格,获得3点护盾 +5010,LegacyNode_Cheese,RelicsIcon/LegacyNode_SuspiciousMushroom,奶酪,购买时恢复30点生命值 +5011,LegacyNode_AegisOfTheImmortal,RelicsIcon/LegacyNode_SuspiciousMushroom,不朽之守护,当你死亡时,免死恢复30%生命值,效果消失 +5012,LegacyNode_SpeedLoader,RelicsIcon/LegacyNode_SuspiciousMushroom,双发装填器,每10张效果牌将打出2次 +5013,LegacyNode_LightningBoots,RelicsIcon/LegacyNode_SuspiciousMushroom,闪电靴,同一回合打出3张效果牌获得2点移动力 +5015,LegacyNode_MeatSaw,RelicsIcon/LegacyNode_SuspiciousMushroom,肉锯,流血触发消耗两层 +5016,LegacyNode_Prism,RelicsIcon/LegacyNode_SuspiciousMushroom,三棱镜,场上同时存在三种友方颜色,涂色牌费用-1 +5017,LegacyNode_Bipod,RelicsIcon/LegacyNode_SuspiciousMushroom,两脚架,本回合未移动,下回合施法距离+4 +5018,LegacyNode_ActivatedCarbon,RelicsIcon/LegacyNode_SuspiciousMushroom,活性炭,击败一个敌人后,将敌人脚下的色块永久保留无法涂色 +5019,LegacyNode_PerpetualMotionPump,RelicsIcon/LegacyNode_SuspiciousMushroom,永动泵,回合结束时,能量未耗尽,将剩余能量转化为下回合临时能量 +5021,LegacyNode_PortableReactor,RelicsIcon/LegacyNode_SuspiciousMushroom,便携式反应堆,每有一张牌被消耗,抽取一张牌 +5022,LegacyNode_ChaosTrigger,RelicsIcon/LegacyNode_SuspiciousMushroom,混沌板机,本回合涂出3种颜色,获得2层临时狂热 +5024,LegacyNode_Filter,RelicsIcon/LegacyNode_SuspiciousMushroom,过滤网,每清除1块污染地块获得1点护盾 +5025,LegacyNode_NurturingBloom,RelicsIcon/LegacyNode_SuspiciousMushroom,滋养之花,回合结束时站在污染地块上,获得2层狂热,失去5点生命 +5026,LegacyNode_PurityBadge,RelicsIcon/LegacyNode_SuspiciousMushroom,净化徽章,清除地块时,对所有敌人造成4点伤害 +5027,LegacyNode_PainContract,RelicsIcon/LegacyNode_SuspiciousMushroom,苦痛契约,回合开始时,失去2点生命,对周围1范围随机染色 diff --git a/ColorlessWorld-2024-4-2/Assets/StreamingAssets/card_data_4 - 副本.csv b/ColorlessWorld-2024-4-2/Assets/StreamingAssets/card_data_4 - 副本.csv deleted file mode 100644 index 2c534d39..00000000 --- a/ColorlessWorld-2024-4-2/Assets/StreamingAssets/card_data_4 - 副本.csv +++ /dev/null @@ -1,4 +0,0 @@ -ID,费用类型,费用,施法范围,作用范围,条件,功能,数值,地块标记,地块颜色,图片路径,名称 -1001,1,1,2,3_1,none,1,5,0_0;1_0;2_0,white;white;white,CardIcon/1010,射击 -1002,1,1,2,3_1,none,2,4,0_0;-1_1;-1_-1,white;white;white,CardIcon/1010,屏障 -1003,1,1,2,3_1,none,,,0_0;1_0;2_0;3_0;4_0,white;white;white;white;white,CardIcon/1010,喷射 diff --git a/ColorlessWorld-2024-4-2/Assets/StreamingAssets/card_data_5.csv b/ColorlessWorld-2024-4-2/Assets/StreamingAssets/card_data_5.csv new file mode 100644 index 00000000..7b350999 --- /dev/null +++ b/ColorlessWorld-2024-4-2/Assets/StreamingAssets/card_data_5.csv @@ -0,0 +1,16 @@ +ID,费用类型,费用,施法范围,作用范围,条件,功能,数值,地块标记,地块颜色,图片路径,名称,稀有度 +1001,1,1,1,3_1,none,1,5,0_0;1_0;2_0,white;white;white,CardIcon/1010,挥砍,1 +1002,1,1,1,3_1,none,2,4,0_0;-1_1;-1_-1,white;white;white,CardIcon/1010,格挡,1 +1003,1,1,1,3_1,none,40,1,1_0;0_1;0_-1;-1_0;-1_1;-1_-1,white;white;white;white;white;white,CardIcon/1010,烟圈,1 +1004,1,2,1,3_1,none,12_13,2_2,0_0;1_0;0_-1;0_1,blue;blue;red;red,CardIcon/1011,搜索,1 +1005,1,1,1,3_1,none,1_12,8_1,1_0;0_1;0_-1;-1_0;-1_1;-1_-1,red;red;red;red;red;red,CardIcon/1012,刀扇,2 +1006,1,0,1,3_1,none,13,2,1_0;0_-1;0_1;2_0;1_-1;1_1,red;red;red;blue;blue;blue,CardIcon/1013,喷吐,2 +1009,1,1,1,3_1,none,23,1,0_0;1_0;2_0,yellow;yellow;yellow,CardIcon/1016,突刺,2 +1010,1,2,1,3_1,none,19,2,0_0;1_0;2_0;1_1;1_-1,blue;blue;blue;blue;blue,CardIcon/1017,重锤,1 +1011,1,1,1,3_1,none,5,1,0_0;1_0;2_0;3_0;4_0,blue;blue;blue;blue;blue,CardIcon/1018,长鞭,2 +1012,1,0,1,3_1,none,none,none,0_0;1_0;0_1,yellow;red;blue,CardIcon/1019,彩球,1 +1013,1,2,1,3_1,none,2,10,1_0;0_-1;0_1;2_0;1_-1;1_1;3_0;2_1;2_-1,red;red;red;blue;blue;blue;yellow;yellow;yellow,CardIcon/1020,九宫格,2 +1014,1,2,1,3_1,none,1,7,0_0;1_0;2_0;-1_1;-1_2;-2_3;-1_-1;-2_-2;-3_-3,red;red;red;yellow;yellow;yellow;blue;blue;blue,CardIcon/1021,三色线,2 +1016,1,1,1,3_1,none,53,2月3日,0_0;1_0;2_0;0_1;0_-1;1_2;1_-2,red;red;red;red;red;red;red,CardIcon/1021,散射,1 +1017,1,2,1,3_1,none,17,1,0_0;1_0;2_0;3_0;2_1;2_-1;2_2;2_-2,blue;blue;blue;blue;blue;blue;blue;blue,CardIcon/1021,单向箭头,2 +1007,1,3,1,3_1,none,1,32,0_0;1_0;0_1;0_-1;1_1;1_-1;1_2;1_-2,black;black;black;black;black;black;black;black,CardIcon/1021,黑火药,3 diff --git a/ColorlessWorld-2024-4-2/Assets/StreamingAssets/card_data_4 - 副本.csv.meta b/ColorlessWorld-2024-4-2/Assets/StreamingAssets/card_data_5.csv.meta similarity index 74% rename from ColorlessWorld-2024-4-2/Assets/StreamingAssets/card_data_4 - 副本.csv.meta rename to ColorlessWorld-2024-4-2/Assets/StreamingAssets/card_data_5.csv.meta index d74d6715..b5595ee7 100644 --- a/ColorlessWorld-2024-4-2/Assets/StreamingAssets/card_data_4 - 副本.csv.meta +++ b/ColorlessWorld-2024-4-2/Assets/StreamingAssets/card_data_5.csv.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 0c939aa3ecbdd9c44b6b59502ed35b35 +guid: a47fc21bae9906a47bf4ab3d37735b1a DefaultImporter: externalObjects: {} userData: diff --git a/ColorlessWorld-2024-4-2/Assets/StreamingAssets/card_data_effect_4.csv b/ColorlessWorld-2024-4-2/Assets/StreamingAssets/card_data_effect_4.csv index 1e46fb9e..44fb14bf 100644 --- a/ColorlessWorld-2024-4-2/Assets/StreamingAssets/card_data_effect_4.csv +++ b/ColorlessWorld-2024-4-2/Assets/StreamingAssets/card_data_effect_4.csv @@ -1,3 +1,33 @@ -ID,消耗类型,消耗数值,条件,功能,数值,地块标记,图片路径,施法范围 -2001,1,1,none,49,1,0_0,CardIcon/1010,2 -2002,1,1,none,40_50,-2_4,none,CardIcon/1010,0 +ID,消耗类型,消耗数值,基础功能,数值,条件,互斥功能,数值,地块标记,图片路径,施法范围,稀有度,消耗,名字 +2006,1,2,54,9,red>9,55,3,0_0,CardIcon/1010,0,2,0,血山 +2014,1,1,57,4,blue>9,57,2,0_0,CardIcon/1010,0,2,0,割裂 +2026,1,1,40,2,blue>5,16,1,0_0,CardIcon/1010,0,2,0,疾跑 +2029,1,1,59,1,blue>11,60,1,0_0,CardIcon/1010,0,2,1,暴风吸入 +2030,1,1,60,1,yellow>10,61,1,0_0,CardIcon/1010,0,2,0,汲取 +2032,1,2,49,1,none,none,none,0_0,CardIcon/1010,1,1,0,点缀 +2034,1,1,63,1,none,none,none,0_0,CardIcon/1010,1,2,0,盾击 +2035,1,1,1,7,none;blue>9,64;64,8;10,0_0,CardIcon/1010,1,1,0,撕扯 +2036,1,1,65,5,none;yellow>10,66;67,1;1,0_0,CardIcon/1010,1,3,1,血蛭 +2037,1,2,18,1,red>9,33,1,0_0,CardIcon/1010,0,2,1,盾垒 +2039,1,0,65,5,none;red>19,11;11,2;3,0_0,CardIcon/1010,0,3,1,战吼 +2023,1,1,none,none,none;yellow>5,52;52,2;3,0_0,CardIcon/1010,1,1,0,踢击 +2022,1,3,none,none,none;red>5,68;69,1;1,0_0,CardIcon/1010,1,3,0,抽血 +2019,1,3,none,none,none;red>12,1;53,10;5-2,0_0,CardIcon/1010,1,2,0,影舞步 +2004,1,3,71,1,none;red>10,70;70,2;1,0_0,CardIcon/1010,0,3,0,血盾 +2002,1,2,none,none,none;blue>10,72;73,1;1,0_0,CardIcon/1010,0,2,0,猩红风暴 +2003,1,1,none,none,none;red>9,74;74,2;3,0_0,CardIcon/1010,1,2,1,血疗 +2007,1,2,none,none,none;red>12,75;76,1;1,0_0,CardIcon/1010,0,2,1,赋能 +2012,1,1,40;50,-1;2,none,none,none,0_0,CardIcon/1010,0,1,0,冷静 +2015,1,2,none,none,none;yellow>4,1;53,15;5-3,0_0,CardIcon/1010,1,3,0,左右开弓 +2027,1,2,none,none,none;blue>10,5_58;5_58,2_2;3_3,0_0,CardIcon/1010,1,2,0,穷追猛砍 +2024,1,1,none,none,none;red>10,52;52,1;2,0_1;1_0;0_-1;-1_0;-1_1;-1_-1,CardIcon/1010,0,1,0,展翅 +2001,1,0,77,1,red>8,78,1,0_0,CardIcon/1010,0,1,0,血祭 +2005,1,1,79;80,1;1,yellow>11,33,1,0_0,CardIcon/1010,0,2,0,等价代换 +2009,1,0,11;81,1;1,none,none,none,0_0,CardIcon/1010,0,1,1,玫瑰茶 +2008,1,1,56,2,none;yellow>4,13;none,1;none,0_0,CardIcon/1010,0,1,0,炼金小包 +2016,1,1,82,1,none,none,none,0_0,CardIcon/1010,0,3,1,消失 +2017,1,1,83,3,yellow>4,86,1,0_0,CardIcon/1010,1,3,0,死亡印记 +2018,1,1,84;85,1;1,yellow>5,33,1,0_0,CardIcon/1010,1,2,0,暗影步 +2021,1,1,90,1,blue>7,89,1,0_0,CardIcon/1010,0,3,1,血怒 +2028,1,1,none,none,none;aroundblue=4,53;53,6-2;6-4,0_1;1_0;0_-1;-1_0;-1_1;-1_-1,CardIcon/1010,1,3,0,剑刃风暴 +2031,1,0,none,none,none;red>9,12;91,1;1,0_0,CardIcon/1010,0,2,0,再来一杯 diff --git a/ColorlessWorld-2024-4-2/obj/Debug/Assembly-CSharp-Editor.csproj.AssemblyReference.cache b/ColorlessWorld-2024-4-2/obj/Debug/Assembly-CSharp-Editor.csproj.AssemblyReference.cache index 74a3362c7157f7ce9a0348d5fb30178207361874..2385357c965df647fd0f9120b6e8b83f9f302017 100644 GIT binary patch literal 133886 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
BUflS{|NY(b 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 literal 98740 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 PL*U?@5J7$#9{~Rk%}qk}