Skip to content

Commit

Permalink
Merge branch 'Development' into bugfix/UnexpectedCharacters
Browse files Browse the repository at this point in the history
  • Loading branch information
Dolzhukov, Viktor committed Dec 8, 2023
2 parents 276b975 + bdb863b commit 6f0e4f4
Show file tree
Hide file tree
Showing 30 changed files with 938 additions and 574 deletions.
2 changes: 2 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
<span style="display:block;text-align:center">![opp-server](opp-server.jpeg)

# The Open Perpetuum Server
This is a fork of the Official Perpetuum Server as released by Avatar Creations [here](https://github.com/PerpetuumOnline/PerpetuumServer).
This server is developed under the direction of the [Open Perpetuum Project](https://openperpetuum.com) game design and development team; a 100% volunteer opensource player development and persistent Perpetuum Server hosting project.
Expand Down
Binary file added opp-server.jpeg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
249 changes: 127 additions & 122 deletions src/Perpetuum.Bootstrapper/PerpetuumBootstrapper.cs

Large diffs are not rendered by default.

7 changes: 6 additions & 1 deletion src/Perpetuum.ExportedTypes/CategoryFlags.cs
Original file line number Diff line number Diff line change
Expand Up @@ -126,6 +126,9 @@ public enum CategoryFlags : long
cf_ct_capsules_robot_thelodica_heavymech = 0x000004020303049B,
cf_ct_capsules_robot_thelodica_light = 0x000001020303049B,
cf_ct_capsules_robot_thelodica_mech = 0x000003020303049B,

cf_respec_token = 0x000000000004049B,

cf_datashards = 0x0000000000000694,
cf_decor = 0x000000000000005A,
cf_decor_buildings = 0x000000000000055A,
Expand Down Expand Up @@ -664,6 +667,8 @@ public enum CategoryFlags : long
cf_world_mobile_teleport_capsule = 0x0000000000020198,
cf_zone_item_shop = 0x0000000000000796,
cf_zone_objects = 0x0000000000000092,
def_pbs_dogtags = 0x0000000000000691
def_pbs_dogtags = 0x0000000000000691,
cf_respec_tokens = 0x000000000004049B,
cf_spark_teleport_devices = 0x000000000005049B,
}
}
5 changes: 4 additions & 1 deletion src/Perpetuum.ExportedTypes/DefinitionNames.cs
Original file line number Diff line number Diff line change
Expand Up @@ -1063,7 +1063,10 @@ public static class DefinitionNames
public const string HYBRID_ROBOT = "def_hybrid_robot";
public const string HYDROBENOL = "def_hydrobenol";
public const string ICE = "def_ice";
public const string ICS_MISSION_COIN = "def_ics_mission_coin";

public const string RESPEC_TOKEN = "def_respec_token";

public const string ICS_MISSION_COIN = "def_ics_mission_coin";
public const string ICS_ZONE_ITEM_SHOP = "def_ics_zone_item_shop";
public const string ICTUS_BOT = "def_ictus_bot";
public const string ICTUS_BOT_CPRG = "def_ictus_bot_cprg";
Expand Down
57 changes: 12 additions & 45 deletions src/Perpetuum.RequestHandlers/Extensions/ExtensionResetCharacter.cs
Original file line number Diff line number Diff line change
Expand Up @@ -6,33 +6,27 @@

namespace Perpetuum.RequestHandlers.Extensions
{


/// <summary>
/// Reset character extension for account credit ... not used yet
/// </summary>
public class ExtensionResetCharacter : IRequestHandler
{
private readonly IAccountManager _accountManager;
private readonly IAccountRepository _accountRepository;
private readonly MtProductHelper _mtProductHelper;
private readonly IAccountManager accountManager;

public ExtensionResetCharacter(IAccountManager accountManager,IAccountRepository accountRepository,MtProductHelper mtProductHelper)
public ExtensionResetCharacter(IAccountManager accountManager)
{
_accountManager = accountManager;
_accountRepository = accountRepository;
_mtProductHelper = mtProductHelper;
this.accountManager = accountManager;
}

public void HandleRequest(IRequest request)
{
using (var scope = Db.CreateTransaction())
{
var account = _accountManager.Repository.Get(request.Session.AccountId).ThrowIfNull(ErrorCodes.AccountNotFound);
var account = accountManager.Repository.Get(request.Session.AccountId).ThrowIfNull(ErrorCodes.AccountNotFound);

var character = Character.Get(request.Data.GetOrDefault<int>(k.characterID));
if ( character == Character.None )

if (character == Character.None)
throw new PerpetuumException(ErrorCodes.CharacterNotFound);

//only characters that belong to the issuers account
Expand All @@ -43,57 +37,30 @@ public void HandleRequest(IRequest request)

(character.IsDocked).ThrowIfFalse(ErrorCodes.CharacterHasToBeDocked);

var product = _mtProductHelper.GetByAccountTransactionType(AccountTransactionType.ExtensionReset);
var wallet = _accountManager.GetWallet(account,AccountTransactionType.ExtensionReset);

wallet.Balance -= product.price;

var e = new AccountTransactionLogEvent(account,AccountTransactionType.ExtensionReset)
{
Credit = wallet.Balance,
CreditChange = -product.price
};

_accountManager.LogTransaction(e);

_accountRepository.Update(account);

//current extensions
var extensionCollection = character.GetExtensions();

//default extensions
var defaultExtensionHandler = new CharacterDefaultExtensionHelper(character);

foreach (var extension in extensionCollection)
{
//returns 0 if the extension is not starter extension
//returns the minimum level if the extension is starter
int newLevel;
defaultExtensionHandler.IsStartingExtension( extension, out newLevel);
defaultExtensionHandler.IsStartingExtension(extension, out newLevel);

var resultExtension = new Extension(extension.id, newLevel);

character.SetExtension(resultExtension);
}

character.DeleteAllSpentPoints();

//ezt nem csinalja, csak nyersen reseteli az extensionoket
/*
ExtensionHelper.DeleteAllNonForeverPenaltyPoints(character);
*/

// %%% itt hagytuk abba

Message.Builder.FromRequest(request).WithOk().Send();

scope.Complete();
}

}




}
}
}
22 changes: 11 additions & 11 deletions src/Perpetuum.RequestHandlers/Sparks/SparkTeleportUse.cs
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
using System.Linq;
using System.Transactions;
using Perpetuum.Accounting.Characters;
using Perpetuum.Common.Loggers.Transaction;
using Perpetuum.Data;
Expand All @@ -10,6 +8,8 @@
using Perpetuum.Robots;
using Perpetuum.Services.ExtensionService;
using Perpetuum.Services.Sparks.Teleports;
using System.Linq;
using System.Transactions;

namespace Perpetuum.RequestHandlers.Sparks
{
Expand All @@ -18,7 +18,7 @@ public class SparkTeleportUse : IRequestHandler
private readonly IExtensionReader _extensionReader;
private readonly SparkTeleportHelper _sparkTeleportHelper;

public SparkTeleportUse(IExtensionReader extensionReader,SparkTeleportHelper sparkTeleportHelper)
public SparkTeleportUse(IExtensionReader extensionReader, SparkTeleportHelper sparkTeleportHelper)
{
_extensionReader = extensionReader;
_sparkTeleportHelper = sparkTeleportHelper;
Expand All @@ -32,19 +32,19 @@ public void HandleRequest(IRequest request)
var character = request.Session.Character;

character.IsDocked.ThrowIfFalse(ErrorCodes.CharacterHasToBeDocked);
character.CheckNextAvailableUndockTimeAndThrowIfFailed();
CheckExtensionLevelAndThrowIfFailed(character);
//character.CheckNextAvailableUndockTimeAndThrowIfFailed();
//CheckExtensionLevelAndThrowIfFailed(character);

var sparkTeleport = _sparkTeleportHelper.Get(id);
var sparkTeleport = _sparkTeleportHelper.GetCommon(id);
var currentDockingBase = character.GetCurrentDockingBase();

character.SubtractFromWallet(TransactionType.SparkTeleportUse, SparkTeleport.SPARK_TELEPORT_USE_FEE);
//character.SubtractFromWallet(TransactionType.SparkTeleportUse, SparkTeleport.SPARK_TELEPORT_USE_FEE);

if ( sparkTeleport.DockingBase == currentDockingBase)
if (sparkTeleport.DockingBase == currentDockingBase)
throw new PerpetuumException(ErrorCodes.YouAreHereAlready);

sparkTeleport.DockingBase.IsDockingAllowed(character).ThrowIfError();
sparkTeleport.DockingBase.DockIn(character,Player.NormalUndockDelay);
sparkTeleport.DockingBase.DockIn(character, Player.NormalUndockDelay);

var robot = sparkTeleport.DockingBase.GetPublicContainerWithItems(character)
.GetFullTree()
Expand All @@ -61,11 +61,11 @@ public void HandleRequest(IRequest request)
.WithData(sparkTeleport.ToDictionary())
.Send();
});

scope.Complete();
}
}

private void CheckExtensionLevelAndThrowIfFailed(Character character)
{
var liveSparkTeleports = _sparkTeleportHelper.GetAllSparkTeleports(character);
Expand Down
Loading

0 comments on commit 6f0e4f4

Please sign in to comment.