초기커밋
This commit is contained in:
102
GameServer/Entity/BuildingProfit/Action/BuildingProfitAction.cs
Normal file
102
GameServer/Entity/BuildingProfit/Action/BuildingProfitAction.cs
Normal file
@@ -0,0 +1,102 @@
|
||||
using ServerCommon;
|
||||
using ServerCore; using ServerBase;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace GameServer
|
||||
{
|
||||
internal class BuildingProfitAction : EntityActionBase
|
||||
{
|
||||
public BuildingProfitAction(BuildingProfit owner)
|
||||
: base(owner)
|
||||
{ }
|
||||
|
||||
public override async Task<Result> onInit()
|
||||
{
|
||||
var result = new Result();
|
||||
return await Task.FromResult(result);
|
||||
}
|
||||
|
||||
public override void onClear()
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
public Result tryLoadBuildingProfitFromDoc(BuildingProfitDoc buildingProfitDoc)
|
||||
{
|
||||
var result = new Result();
|
||||
var err_msg = string.Empty;
|
||||
|
||||
var building_profit = getOwner() as BuildingProfit;
|
||||
NullReferenceCheckHelper.throwIfNull(building_profit, () => $"building_profit is null !!!");
|
||||
|
||||
var building_profit_attribute = building_profit.getEntityAttribute<BuildingProfitAttribute>();
|
||||
NullReferenceCheckHelper.throwIfNull(building_profit_attribute, () => $"building_profit_attribute is null !!!");
|
||||
|
||||
if (!building_profit_attribute.copyEntityAttributeFromDoc(buildingProfitDoc))
|
||||
{
|
||||
err_msg = $"Failed to copyEntityAttributeFromDoc() !!! to:{building_profit_attribute.getTypeName()}, from:{buildingProfitDoc.getTypeName()} : {this.getTypeName()}";
|
||||
result.setFail(ServerErrorCode.DynamoDbDocCopyToEntityAttributeFailed, err_msg);
|
||||
Log.getLogger().error(result.toBasicString());
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
public int getFloor()
|
||||
{
|
||||
var building_profit = getOwner() as BuildingProfit;
|
||||
NullReferenceCheckHelper.throwIfNull(building_profit, () => $"building_profit is null !!!");
|
||||
|
||||
var building_profit_attribute = building_profit.getEntityAttribute<BuildingProfitAttribute>();
|
||||
NullReferenceCheckHelper.throwIfNull(building_profit_attribute, () => $"building_profit_attribute is null !!!");
|
||||
|
||||
return building_profit_attribute.Floor;
|
||||
}
|
||||
|
||||
public Dictionary<CurrencyType, double> getProfits()
|
||||
{
|
||||
var building_profit = getOwner() as BuildingProfit;
|
||||
NullReferenceCheckHelper.throwIfNull(building_profit, () => $"building_profit is null !!!");
|
||||
|
||||
var building_profit_attribute = building_profit.getEntityAttribute<BuildingProfitAttribute>();
|
||||
NullReferenceCheckHelper.throwIfNull(building_profit_attribute, () => $"building_profit_attribute is null !!!");
|
||||
|
||||
var profits = new Dictionary<CurrencyType, double>(building_profit_attribute.Profits);
|
||||
|
||||
return profits;
|
||||
}
|
||||
|
||||
public double getProfit(CurrencyType currencyType)
|
||||
{
|
||||
var building_profit = getOwner() as BuildingProfit;
|
||||
NullReferenceCheckHelper.throwIfNull(building_profit, () => $"building_profit is null !!!");
|
||||
|
||||
var building_profit_attribute = building_profit.getEntityAttribute<BuildingProfitAttribute>();
|
||||
NullReferenceCheckHelper.throwIfNull(building_profit_attribute, () => $"building_profit_attribute is null !!!");
|
||||
|
||||
building_profit_attribute.Profits.TryGetValue(currencyType, out var currency_amount);
|
||||
|
||||
return currency_amount;
|
||||
}
|
||||
|
||||
public void modifyProfit(CurrencyType currencyType, double deltaAmount)
|
||||
{
|
||||
var building_profit = getOwner() as BuildingProfit;
|
||||
NullReferenceCheckHelper.throwIfNull(building_profit, () => $"building_profit is null !!!");
|
||||
|
||||
var building_profit_attribute = building_profit.getEntityAttribute<BuildingProfitAttribute>();
|
||||
NullReferenceCheckHelper.throwIfNull(building_profit_attribute, () => $"building_profit_attribute is null !!!");
|
||||
|
||||
building_profit_attribute.Profits.TryGetValue(currencyType, out var currency_amount);
|
||||
|
||||
currency_amount += deltaAmount;
|
||||
building_profit_attribute.Profits[currencyType] = currency_amount;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user