Ejemplo n.º 1
0
        public static String activated()
        {
            Int64            powerupHash      = Int64.Parse(Access.sHttp.request.Path.Split('/')[4]);
            PowerupActivated powerupActivated = new PowerupActivated();

            powerupActivated.id = powerupHash;
            powerupActivated.targetPersonaId = Int32.Parse(Access.sHttp.request.Params.Get("targetId"));
            powerupActivated.personaId       = Access.CurrentSession.ActivePersona.Id;

            PowerupActivatedResponse powerupActivatedResponse = new PowerupActivatedResponse();

            powerupActivatedResponse.powerupActivated = powerupActivated;

            Message message = new Message();

            message.setBody(powerupActivatedResponse);

#pragma warning disable CS4014
            Access.sXmpp.write(message.SerializeObject(true));
#pragma warning restore CS4014

            return("");
        }
Ejemplo n.º 2
0
        public static String activated()
        {
            Int64            powerupHash      = Int64.Parse(Access.sHttp.request.Path.Split('/')[4]);
            PowerupActivated powerupActivated = new PowerupActivated();

            powerupActivated.id = powerupHash;
            powerupActivated.targetPersonaId = Int32.Parse(Access.sHttp.request.Params.Get("targetId"));
            powerupActivated.personaId       = Access.CurrentSession.ActivePersona.Id;

            PowerupActivatedResponse powerupActivatedResponse = new PowerupActivatedResponse();

            powerupActivatedResponse.powerupActivated = powerupActivated;

            Message message = new Message();

            message.setBody(powerupActivatedResponse);

#pragma warning disable CS4014
            object threadSafeDummy = new object();
            lock (threadSafeDummy)
            {
                InventoryItemEntity entity = PersonaManagement.persona.inventory.FirstOrDefault(ii => ii.hash == (Int32)powerupHash);
                if (entity != null)
                {
                    entity = InventoryItemManagement.getInventoryItemEntity(entity.id);
                    entity.remainingUseCount -= 1;
                    entity.setInventoryItemEntity();
                }

                // Send powerup activation data to game
                Access.sXmpp.write(message.SerializeObject(true));
            }
#if DEBUG
            lock (threadSafeDummy)
            {
                if ((Int32)powerupHash == Engine.getOverflowHash("nosshot"))
                {
                    message = new Message();

                    // Debug, only for showing achievement display
                    // Will cause the game to crash if achievements/loadall was empty.
                    AchievementAwarded achievementAwarded = new AchievementAwarded();
                    var acDef = AchievementDefinitions.achievements["ACH_USE_NOS"];
                    achievementAwarded.achievementDefinitionId = acDef.achievementDefinition.achievementDefinitionId;
                    achievementAwarded.achievementRankId       = acDef.achievementDefinition.achievementRanks[0].achievementRankId;
                    achievementAwarded.description             = acDef.badgeDefinition.description;
                    achievementAwarded.icon   = acDef.badgeDefinition.icon;
                    achievementAwarded.isRare = acDef.achievementDefinition.achievementRanks[0].isRare;
                    achievementAwarded.name   = acDef.badgeDefinition.name;
                    achievementAwarded.points = acDef.achievementDefinition.achievementRanks[0].points;
                    achievementAwarded.rarity = acDef.achievementDefinition.achievementRanks[0].rarity;

                    AchievementProgress achievementProgress = new AchievementProgress();
                    achievementProgress.achievementDefinitionId = acDef.achievementDefinition.achievementDefinitionId;
                    achievementProgress.currentValue            = 1;

                    AchievementsAwarded achievementsAwarded = new AchievementsAwarded();
                    achievementsAwarded.achievements.Add(achievementAwarded);
                    achievementsAwarded.score = Access.CurrentSession.ActivePersona.score;

                    message.setBody(achievementsAwarded);
                    Access.sXmpp.write(message.SerializeObject(true));
                }
            }
#endif
#pragma warning restore CS4014

            return("");
        }