Skip to content

Commit

Permalink
Merge pull request #2819 from planetarium/feat/return-useful-items
Browse files Browse the repository at this point in the history
refactor: change return type of some methods
  • Loading branch information
boscohyun authored Sep 11, 2024
2 parents 1062d5c + 0f9292b commit 30283a5
Show file tree
Hide file tree
Showing 8 changed files with 25 additions and 40 deletions.
4 changes: 2 additions & 2 deletions Lib9c/Action/AdventureBoss/ExploreAdventureBoss.cs
Original file line number Diff line number Diff line change
Expand Up @@ -168,11 +168,11 @@ public override IWorld Execute(IActionContext context)

var equipmentList =
avatarState.ValidateEquipmentsV3(Equipments, context.BlockIndex, gameConfigState);
var costumeIds = avatarState.ValidateCostumeV2(Costumes, gameConfigState);
var costumeList = avatarState.ValidateCostumeV2(Costumes, gameConfigState);
var items = Equipments.Concat(Costumes);
avatarState.EquipItems(items);
avatarState.ValidateItemRequirement(
costumeIds,
costumeList.Select(e => e.Id).ToList(),
equipmentList,
sheets.GetSheet<ItemRequirementSheet>(),
sheets.GetSheet<EquipmentItemRecipeSheet>(),
Expand Down
4 changes: 2 additions & 2 deletions Lib9c/Action/AdventureBoss/SweepAdventureBoss.cs
Original file line number Diff line number Diff line change
Expand Up @@ -146,11 +146,11 @@ public override IWorld Execute(IActionContext context)

var equipmentList =
avatarState.ValidateEquipmentsV3(Equipments, context.BlockIndex, gameConfigState);
var costumeIds = avatarState.ValidateCostumeV2(Costumes, gameConfigState);
var costumeList = avatarState.ValidateCostumeV2(Costumes, gameConfigState);
var items = Equipments.Concat(Costumes);
avatarState.EquipItems(items);
avatarState.ValidateItemRequirement(
costumeIds,
costumeList.Select(e => e.Id).ToList(),
equipmentList,
sheets.GetSheet<ItemRequirementSheet>(),
sheets.GetSheet<EquipmentItemRecipeSheet>(),
Expand Down
4 changes: 2 additions & 2 deletions Lib9c/Action/EventDungeonBattle.cs
Original file line number Diff line number Diff line change
Expand Up @@ -211,12 +211,12 @@ public override IWorld Execute(IActionContext context)
var gameConfigState = states.GetGameConfigState();
var equipmentList = avatarState.ValidateEquipmentsV3(
Equipments, context.BlockIndex, gameConfigState);
var costumeIds = avatarState.ValidateCostumeV2(Costumes, gameConfigState);
var costumeList = avatarState.ValidateCostumeV2(Costumes, gameConfigState);
var foodIds = avatarState.ValidateConsumableV2(Foods, context.BlockIndex, gameConfigState);
var equipmentAndCostumes = Equipments.Concat(Costumes);
avatarState.EquipItems(equipmentAndCostumes);
avatarState.ValidateItemRequirement(
costumeIds.Concat(foodIds).ToList(),
costumeList.Select(e => e.Id).Concat(foodIds).ToList(),
equipmentList,
sheets.GetSheet<ItemRequirementSheet>(),
sheets.GetSheet<EquipmentItemRecipeSheet>(),
Expand Down
4 changes: 2 additions & 2 deletions Lib9c/Action/HackAndSlash.cs
Original file line number Diff line number Diff line change
Expand Up @@ -320,7 +320,7 @@ public IWorld Execute(
var equipmentList = avatarState.ValidateEquipmentsV3(
Equipments, blockIndex, gameConfigState);
var foodIds = avatarState.ValidateConsumableV2(Foods, blockIndex, gameConfigState);
var costumeIds = avatarState.ValidateCostumeV2(Costumes, gameConfigState);
var costumeList = avatarState.ValidateCostumeV2(Costumes, gameConfigState);

validateItemsActivity?.Dispose();
sw.Stop();
Expand Down Expand Up @@ -397,7 +397,7 @@ public IWorld Execute(
actionPoint -= minimumCostAp * apPlayCount;
states = states.SetActionPoint(AvatarAddress, actionPoint);
avatarState.ValidateItemRequirement(
costumeIds.Concat(foodIds).ToList(),
costumeList.Select(e => e.Id).Concat(foodIds).ToList(),
equipmentList,
sheets.GetSheet<ItemRequirementSheet>(),
sheets.GetSheet<EquipmentItemRecipeSheet>(),
Expand Down
14 changes: 2 additions & 12 deletions Lib9c/Action/HackAndSlashSweep.cs
Original file line number Diff line number Diff line change
Expand Up @@ -188,11 +188,11 @@ public override IWorld Execute(IActionContext context)

var equipmentList = avatarState.ValidateEquipmentsV3(
equipments, context.BlockIndex, gameConfigState);
var costumeIds = avatarState.ValidateCostumeV2(costumes, gameConfigState);
var costumeList = avatarState.ValidateCostumeV2(costumes, gameConfigState);
var items = equipments.Concat(costumes);
avatarState.EquipItems(items);
avatarState.ValidateItemRequirement(
costumeIds,
costumeList.Select(e => e.Id).ToList(),
equipmentList,
sheets.GetSheet<ItemRequirementSheet>(),
sheets.GetSheet<EquipmentItemRecipeSheet>(),
Expand All @@ -207,16 +207,6 @@ public override IWorld Execute(IActionContext context)
$"{addressesHex}There is no row in SweepRequiredCPSheet: {stageId}");
}

var costumeList = new List<Costume>();
foreach (var guid in costumes)
{
var costume = avatarState.inventory.Costumes.FirstOrDefault(x => x.ItemId == guid);
if (costume != null)
{
costumeList.Add(costume);
}
}

// update rune slot
var runeSlotStateAddress =
RuneSlotState.DeriveAddress(avatarAddress, BattleType.Adventure);
Expand Down
14 changes: 2 additions & 12 deletions Lib9c/Action/Raid.cs
Original file line number Diff line number Diff line change
Expand Up @@ -167,7 +167,7 @@ public override IWorld Execute(IActionContext context)
EquipmentIds, context.BlockIndex, gameConfigState);
var foodIds = avatarState.ValidateConsumableV2(
FoodIds, context.BlockIndex, gameConfigState);
var costumeIds = avatarState.ValidateCostumeV2(CostumeIds, gameConfigState);
var costumeList = avatarState.ValidateCostumeV2(CostumeIds, gameConfigState);

// Update rune slot
var runeSlotStateAddress = RuneSlotState.DeriveAddress(AvatarAddress, BattleType.Raid);
Expand Down Expand Up @@ -203,7 +203,7 @@ public override IWorld Execute(IActionContext context)
var items = EquipmentIds.Concat(CostumeIds);
avatarState.EquipItems(items);
avatarState.ValidateItemRequirement(
costumeIds.Concat(foodIds).ToList(),
costumeList.Select(e => e.Id).Concat(foodIds).ToList(),
equipmentList,
sheets.GetSheet<ItemRequirementSheet>(),
sheets.GetSheet<EquipmentItemRecipeSheet>(),
Expand Down Expand Up @@ -243,16 +243,6 @@ public override IWorld Execute(IActionContext context)
simulator.Simulate();
avatarState.inventory = simulator.Player.Inventory;

var costumeList = new List<Costume>();
foreach (var guid in CostumeIds)
{
var costume = avatarState.inventory.Costumes.FirstOrDefault(x => x.ItemId == guid);
if (costume != null)
{
costumeList.Add(costume);
}
}

var equippedRune = new List<RuneState>();
foreach (var runeInfo in runeSlotState.GetEquippedRuneSlotInfos())
{
Expand Down
10 changes: 6 additions & 4 deletions Lib9c/Helper/AvatarStateExtensions.cs
Original file line number Diff line number Diff line change
Expand Up @@ -139,7 +139,8 @@ public static void ValidEquipmentAndCostume(this AvatarState avatarState,
addressesHex);
}

public static void ValidEquipmentAndCostumeV2(this AvatarState avatarState,
public static (List<Equipment> equipments, List<Costume> costumes) ValidEquipmentAndCostumeV2(
this AvatarState avatarState,
IEnumerable<Guid> costumeIds,
List<Guid> equipmentIds,
ItemRequirementSheet itemRequirementSheet,
Expand All @@ -150,16 +151,17 @@ public static void ValidEquipmentAndCostumeV2(this AvatarState avatarState,
string addressesHex,
GameConfigState gameConfigState)
{
var equipments = avatarState.ValidateEquipmentsV3(equipmentIds, blockIndex,gameConfigState);
var costumeItemIds = avatarState.ValidateCostumeV2(costumeIds, gameConfigState);
var equipments = avatarState.ValidateEquipmentsV3(equipmentIds, blockIndex, gameConfigState);
var costumes = avatarState.ValidateCostumeV2(costumeIds, gameConfigState);
avatarState.ValidateItemRequirement(
costumeItemIds.ToList(),
costumes.Select(e => e.Id).ToList(),
equipments,
itemRequirementSheet,
equipmentItemRecipeSheet,
equipmentItemSubRecipeSheetV2,
equipmentItemOptionSheet,
addressesHex);
return (equipments, costumes);
}
}
}
11 changes: 7 additions & 4 deletions Lib9c/Model/State/AvatarState.cs
Original file line number Diff line number Diff line change
Expand Up @@ -880,7 +880,10 @@ public List<int> ValidateConsumable(List<Guid> consumableIds, long currentBlockI
return list;
}

public List<int> ValidateConsumableV2(List<Guid> consumableIds, long currentBlockIndex, GameConfigState gameConfigState)
public List<int> ValidateConsumableV2(
List<Guid> consumableIds,
long currentBlockIndex,
GameConfigState gameConfigState)
{
var list = new List<int>();
for (var slotIndex = 0; slotIndex < consumableIds.Count; slotIndex++)
Expand Down Expand Up @@ -987,10 +990,10 @@ public List<int> ValidateCostume(IEnumerable<Guid> costumeIds)
return list;
}

public List<int> ValidateCostumeV2(IEnumerable<Guid> costumeIds, GameConfigState gameConfigState)
public List<Costume> ValidateCostumeV2(IEnumerable<Guid> costumeIds, GameConfigState gameConfigState)
{
var subTypes = new List<ItemSubType>();
var list = new List<int>();
var list = new List<Costume>();
foreach (var costumeId in costumeIds)
{
if (!inventory.TryGetNonFungibleItem<Costume>(costumeId, out var costume))
Expand Down Expand Up @@ -1036,7 +1039,7 @@ public List<int> ValidateCostumeV2(IEnumerable<Guid> costumeIds, GameConfigState
throw new CostumeSlotUnlockException($"not enough level. required: {requiredLevel}");
}

list.Add(costume.Id);
list.Add(costume);
}

return list;
Expand Down

0 comments on commit 30283a5

Please sign in to comment.