Ejemplo n.º 1
0
        public void SetTax(Character character, double newTax)
        {
            IsPlayerControlledMarketTax().ThrowIfFalse(ErrorCodes.AccessDenied);

            var oldTax = Tax;

            newTax = newTax.Clamp();

            var coporationEid = character.CorporationEid;

            ProfitingOwnerSelector.GetProfitingOwner(GetDockingBase()).ThrowIfNull(ErrorCodes.AccessDenied);

            var corporation = PrivateCorporation.GetOrThrow(coporationEid);
            var role        = corporation.GetMemberRole(character);

            role.IsAnyRole(CorporationRole.CEO, CorporationRole.DeputyCEO, CorporationRole.Accountant).ThrowIfFalse(ErrorCodes.InsufficientPrivileges);

            //write log
            var e = new MarketTaxChangeLogEvent
            {
                BaseEid     = GetDockingBase().Eid,
                ChangeFrom  = oldTax,
                ChangeTo    = newTax,
                CharacterId = character.Id,
                Owner       = coporationEid,
            };

            GetTaxChangeLogger().Log(e);

            //set value
            Tax = newTax;
        }
Ejemplo n.º 2
0
        public static Corporation GetProfitingOwner(DockingBase dockingBase)
        {
            if (dockingBase == null)
            {
                return(null);
            }

            var selector = new ProfitingOwnerSelector();

            dockingBase.AcceptVisitor(selector);
            return(selector._owner);
        }