public async Task <KarmaAkashicRecord> KarmaLost(KarmaTypeNegative karmaType, KarmaSourceType karmaSourceType, string karamSourceTitle, string karmaSourceDesc, bool autoSave = true)
        {
            KarmaAkashicRecord record = new KarmaAkashicRecord {
                KarmaEarntOrLost = KarmaEarntOrLost.Lost, Date = DateTime.Now, Karma = GetKarmaForType(karmaType), KarmaSource = karmaSourceType, KarmaSourceTitle = karamSourceTitle, KarmaSourceDesc = karmaSourceDesc, KarmaTypeNegative = karmaType, UserId = UserId, Provider = ProviderManager.CurrentStorageProviderType
            };

            this.Karma -= GetKarmaForType(karmaType);

            if (this.KarmaAkashicRecords == null)
            {
                this.KarmaAkashicRecords = new List <KarmaAkashicRecord>();
            }

            this.KarmaAkashicRecords.Add(record);

            if (autoSave)
            {
                await Save();
            }

            return(record);
        }
        public async Task <KarmaAkashicRecord> RemoveKarmaFromProfileAsync(IProfile profile, KarmaTypeNegative karmaType, KarmaSourceType karmaSourceType, string karamSourceTitle, string karmaSourceDesc, ProviderType provider = ProviderType.Default)
        {
            if (provider != ProviderType.Default)
            {
                return(await((IOASISStorage)ProviderManager.GetAndActivateProvider(provider)).SubtractKarmaFromProfileAsync(profile, karmaType, karmaSourceType, karamSourceTitle, karmaSourceDesc));
            }

            return(await ProviderManager.CurrentStorageProvider.SubtractKarmaFromProfileAsync(profile, karmaType, karmaSourceType, karamSourceTitle, karmaSourceDesc));
        }
        private int GetKarmaForType(KarmaTypeNegative karmaType)
        {
            switch (karmaType)
            {
            case KarmaTypeNegative.AttackPhysciallyOtherPersonOrPeople:
                return(10);

            case KarmaTypeNegative.AttackVerballyOtherPersonOrPeople:
                return(5);

            case KarmaTypeNegative.BeingSelfish:
                return(3);

            case KarmaTypeNegative.DisrespectPersonOrPeople:
                return(4);

            case KarmaTypeNegative.DropLitter:
                return(9);

            case KarmaTypeNegative.HarmingAnimals:
                return(10);

            case KarmaTypeNegative.HarmingChildren:
                return(9);

            case KarmaTypeNegative.HarmingNature:
                return(10);

            case KarmaTypeNegative.NotTeamPlayer:
                return(3);

            case KarmaTypeNegative.NutritionEatDiary:
                return(6);

            case KarmaTypeNegative.NutritionEatDrinkUnhealthy:
                return(3);

            case KarmaTypeNegative.NutritionEatMeat:
                return(7);

            case KarmaTypeNegative.Other:
                return(1);

            case KarmaTypeNegative.OurWorldAttackOtherPlayer:
                return(7);

            case KarmaTypeNegative.OurWorldBeSelfish:
                return(4);

            case KarmaTypeNegative.OurWorldDisrespectOtherPlayer:
                return(5);

            case KarmaTypeNegative.OurWorldDropLitter:
                return(7);

            case KarmaTypeNegative.OurWorldNotTeamPlayer:
                return(3);

            default:
                return(0);
            }
        }
Ejemplo n.º 4
0
 public Task <KarmaAkashicRecord> SubtractKarmaFromProfileAsync(API.Core.IProfile profile, KarmaTypeNegative karmaType, KarmaSourceType karmaSourceType, string karamSourceTitle, string karmaSourceDesc)
 {
     return(profile.KarmaLost(karmaType, karmaSourceType, karamSourceTitle, karmaSourceDesc));
 }