示例#1
0
        /// <summary>
        /// Ebben van a ko papir ollos cucc, 1hez ad 1tol levon
        /// </summary>
        /// <param name="randomMission"></param>
        public override void VisitRandomMission(RandomMission randomMission)
        {
            var missionLevel = _missionInProgress.MissionLevel;

            var rawGrindLevel = _missionDataCache.LookUpGrindAmount(missionLevel);

            var diffmult = randomMission.DifficultyMultiplier;

            var standingValue = 1 / (diffmult * rawGrindLevel);

            standingValue *= _missionInProgress.GetParticipantBonusModifier();

            // 0 -> 0.0   10 - > 1.0
            // 6 -> 0.6 --> 0.5*0.6 => positive x 30%

            //Implementation: Add reputation for all factions equally -- No factional bias!
            IEnumerable <long>           allianceEids = DefaultCorporationDataCache.GetMegaCorporationEids();
            List <MissionStandingChange> standingChangeForSyndicatification = new List <MissionStandingChange>();

            foreach (long id in allianceEids)
            {
                standingChangeForSyndicatification.Add(new MissionStandingChange(id, standingValue));
            }
            _standingChanges = standingChangeForSyndicatification.ToArray();
        }
示例#2
0
        public List <StandingInfo> GetStandingForCharacter(Character character)
        {
            var allianceEids = DefaultCorporationDataCache.GetMegaCorporationEids().ToArray();
            var qs           = "select * from standings where [source] in (" + allianceEids.ArrayToString() + ") and [target]=@characterEid";

            return(Db.Query().CommandText(qs).SetParameter("@characterEid", character.Eid).Execute().Select(CreateStandingInfoFromRecord).ToList());
        }
示例#3
0
 public static IDictionary <string, object> GetStandingForDefaultAlliances(this IStandingHandler standingHandler, Character character)
 {
     return(DefaultCorporationDataCache.GetMegaCorporationEids().ToDictionary("s", allianceEID =>
     {
         var standing = standingHandler.GetStanding(allianceEID, character.Eid);
         var entry = new Dictionary <string, object>()
         {
             { k.eid, allianceEID },
             { k.standing, standing },
         };
         return entry;
     }));
 }
        public void HandleRequest(IRequest request)
        {
            using (var scope = Db.CreateTransaction())
            {
                var standing = request.Data.GetOrDefault <double>(k.standing).Clamp(-10, 10);

                var character = request.Session.Character;
                foreach (var allienceEid in DefaultCorporationDataCache.GetMegaCorporationEids())
                {
                    _standingHandler.SetStanding(allienceEid, character.Eid, standing);
                }

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

                scope.Complete();
            }
        }