update design
This commit is contained in:
@@ -145,6 +145,12 @@ namespace GeometryTD.CustomComponent
|
||||
return _towerRosterService.ReduceTowerEndurance(towerInstanceIds, enduranceLoss);
|
||||
}
|
||||
|
||||
public bool TryDisassembleTower(long towerInstanceId)
|
||||
{
|
||||
EnsureInitialized();
|
||||
return _towerAssemblyService.TryDisassembleTower(towerInstanceId);
|
||||
}
|
||||
|
||||
public bool TryGetSaleCandidate(long itemId, out PlayerInventorySaleCandidate candidate)
|
||||
{
|
||||
EnsureInitialized();
|
||||
|
||||
+34
-2
@@ -123,7 +123,7 @@ namespace GeometryTD.CustomComponent
|
||||
int[] values = new int[TowerLevelCount];
|
||||
for (int i = 0; i < values.Length; i++)
|
||||
{
|
||||
values[i] = baseValue + perLevel * i;
|
||||
values[i] = Mathf.Max(0, baseValue + perLevel * i);
|
||||
}
|
||||
|
||||
return values;
|
||||
@@ -135,7 +135,7 @@ namespace GeometryTD.CustomComponent
|
||||
float[] values = new float[TowerLevelCount];
|
||||
for (int i = 0; i < values.Length; i++)
|
||||
{
|
||||
values[i] = baseValue + perLevel * i;
|
||||
values[i] = Mathf.Max(0f, baseValue + perLevel * i);
|
||||
}
|
||||
|
||||
return values;
|
||||
@@ -180,5 +180,37 @@ namespace GeometryTD.CustomComponent
|
||||
_drBaseComp ??= GameEntry.DataTable.GetDataTable<DRBaseComp>();
|
||||
return _drBaseComp;
|
||||
}
|
||||
|
||||
public bool TryDisassembleTower(long towerInstanceId)
|
||||
{
|
||||
BackpackInventoryData inventory = _queryModel.Inventory;
|
||||
if (towerInstanceId <= 0)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!_queryModel.TryGetTowerById(towerInstanceId, out TowerItemData tower) || tower == null)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!_queryModel.TryGetComponentById(inventory.MuzzleComponents, tower.MuzzleComponentInstanceId, out MuzzleCompItemData muzzleComp) ||
|
||||
!_queryModel.TryGetComponentById(inventory.BearingComponents, tower.BearingComponentInstanceId, out BearingCompItemData bearingComp) ||
|
||||
!_queryModel.TryGetComponentById(inventory.BaseComponents, tower.BaseComponentInstanceId, out BaseCompItemData baseComp))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
InventoryParticipantUtility.TryRemoveParticipantTower(inventory, towerInstanceId, MaxParticipantTowerCount);
|
||||
|
||||
muzzleComp.IsAssembledIntoTower = false;
|
||||
bearingComp.IsAssembledIntoTower = false;
|
||||
baseComp.IsAssembledIntoTower = false;
|
||||
|
||||
inventory.Towers.Remove(tower);
|
||||
return true;
|
||||
}
|
||||
|
||||
private const int MaxParticipantTowerCount = 4;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -24,8 +24,8 @@ namespace GeometryTD.Definition
|
||||
int normalizedBase = (int)NormalizeComponentRarity(baseRarity);
|
||||
|
||||
float average = (normalizedMuzzle + normalizedBearing + normalizedBase) / 3f;
|
||||
int rounded = Mathf.RoundToInt(average);
|
||||
int clamped = Mathf.Clamp(rounded, (int)RarityType.White, (int)RarityType.Red);
|
||||
int floored = Mathf.FloorToInt(average);
|
||||
int clamped = Mathf.Clamp(floored, (int)RarityType.White, (int)RarityType.Red);
|
||||
return (RarityType)clamped;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user