refactor: extract firstJob and items
This commit is contained in:
parent
a351d95bdc
commit
299a9e8b98
1 changed files with 28 additions and 18 deletions
|
@ -38,31 +38,16 @@ public class CharacterCreationHandler : IPacketHandler<CharacterCreationPacket>
|
||||||
var mappedDefaultItems = _characterStatsMapping.DefaultCharacterMapping.Items
|
var mappedDefaultItems = _characterStatsMapping.DefaultCharacterMapping.Items
|
||||||
.Select(i => _itemObjectPoolService.GetBaseInventoryItem(i.Id, i.Quantity)).ToArray();
|
.Select(i => _itemObjectPoolService.GetBaseInventoryItem(i.Id, i.Quantity)).ToArray();
|
||||||
|
|
||||||
var firstJobConfig = packet.FirstJob switch
|
var firstJobConfig = SelectFirstJobConfig(packet.FirstJob);
|
||||||
{
|
|
||||||
1 => _characterStatsMapping.Swordsman,
|
|
||||||
2 => _characterStatsMapping.Mage,
|
|
||||||
3 => _characterStatsMapping.Thief,
|
|
||||||
4 => _characterStatsMapping.Scout,
|
|
||||||
_ => _characterStatsMapping.Swordsman
|
|
||||||
};
|
|
||||||
|
|
||||||
var mappedJobItems = firstJobConfig.Items
|
var mappedJobItems = firstJobConfig.Items
|
||||||
.Select(i => _itemObjectPoolService.GetBaseInventoryItem(i.Id, i.Quantity)).ToArray();
|
.Select(i => _itemObjectPoolService.GetBaseInventoryItem(i.Id, i.Quantity)).ToArray();
|
||||||
|
var defaultItems = GenerateDefaultItems(packet);
|
||||||
InventoryItem[] items =
|
InventoryItem[] items =
|
||||||
[
|
[
|
||||||
.. mappedDefaultItems,
|
.. mappedDefaultItems,
|
||||||
.. mappedJobItems,
|
.. mappedJobItems,
|
||||||
_itemObjectPoolService.GetBaseInventoryItem((ushort)((packet.FirstJob - 1) * 6 +
|
.. defaultItems
|
||||||
((byte)packet.Gender - 1) * 3 +
|
|
||||||
packet.Hair + 1)),
|
|
||||||
_itemObjectPoolService.GetBaseInventoryItem((ushort)((packet.FirstJob - 1) * 6 +
|
|
||||||
((byte)packet.Gender - 1) * 3 +
|
|
||||||
packet.Eyes + 25)),
|
|
||||||
_itemObjectPoolService.GetBaseInventoryItem((ushort)(((byte)packet.Gender - 1) * 3 +
|
|
||||||
packet.Shirt + 49)),
|
|
||||||
_itemObjectPoolService.GetBaseInventoryItem((ushort)(((byte)packet.Gender - 1) * 3 +
|
|
||||||
packet.Pants + 58))
|
|
||||||
];
|
];
|
||||||
|
|
||||||
var calculateCurrentMana = CalculateCurrentMana(1, firstJobConfig);
|
var calculateCurrentMana = CalculateCurrentMana(1, firstJobConfig);
|
||||||
|
@ -119,6 +104,31 @@ public class CharacterCreationHandler : IPacketHandler<CharacterCreationPacket>
|
||||||
}).ConfigureAwait(false);
|
}).ConfigureAwait(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private JobSpecificMapping SelectFirstJobConfig(byte firstJob) =>
|
||||||
|
firstJob switch
|
||||||
|
{
|
||||||
|
1 => _characterStatsMapping.Swordsman,
|
||||||
|
2 => _characterStatsMapping.Mage,
|
||||||
|
3 => _characterStatsMapping.Thief,
|
||||||
|
4 => _characterStatsMapping.Scout,
|
||||||
|
_ => _characterStatsMapping.Swordsman
|
||||||
|
};
|
||||||
|
|
||||||
|
private InventoryItem[] GenerateDefaultItems(CharacterCreationPacket packet) =>
|
||||||
|
new[]
|
||||||
|
{
|
||||||
|
_itemObjectPoolService.GetBaseInventoryItem((ushort)((packet.FirstJob - 1) * 6 +
|
||||||
|
((byte)packet.Gender - 1) * 3 +
|
||||||
|
packet.Hair + 1)),
|
||||||
|
_itemObjectPoolService.GetBaseInventoryItem((ushort)((packet.FirstJob - 1) * 6 +
|
||||||
|
((byte)packet.Gender - 1) * 3 +
|
||||||
|
packet.Eyes + 25)),
|
||||||
|
_itemObjectPoolService.GetBaseInventoryItem((ushort)(((byte)packet.Gender - 1) * 3 +
|
||||||
|
packet.Shirt + 49)),
|
||||||
|
_itemObjectPoolService.GetBaseInventoryItem((ushort)(((byte)packet.Gender - 1) * 3 +
|
||||||
|
packet.Pants + 58))
|
||||||
|
};
|
||||||
|
|
||||||
private static int CalculateCurrentHealth(ushort level, JobSpecificMapping firstJobConfig)
|
private static int CalculateCurrentHealth(ushort level, JobSpecificMapping firstJobConfig)
|
||||||
{
|
{
|
||||||
return (int)((level - 1) * firstJobConfig.DynamicStats.HealthPerLevel +
|
return (int)((level - 1) * firstJobConfig.DynamicStats.HealthPerLevel +
|
||||||
|
|
Loading…
Reference in a new issue