Пример #1
0
 private static void HandleLeaveEnsemble(GameSession session)
 {
     session.FieldManager.BroadcastPacket(InstrumentPacket.StopScore(session.Player.Instrument));
     session.FieldManager.RemoveInstrument(session.Player.Instrument);
     session.Player.Instrument = null;
     session.Send(InstrumentPacket.LeaveEnsemble());
 }
Пример #2
0
    private static void HandleStopScore(GameSession session)
    {
        int masteryExpGain = (session.ServerTick - session.Player.Instrument.Value.InstrumentTick) / 1000;

        // TODO: Find any exp cap
        session.Player.Levels.GainMasteryExp(MasteryType.Performance, masteryExpGain);
        session.FieldManager.BroadcastPacket(InstrumentPacket.StopScore(session.Player.Instrument));
        session.FieldManager.RemoveInstrument(session.Player.Instrument);
        session.Player.Instrument = null;
    }
Пример #3
0
    private static void HandleStopScore(GameSession session)
    {
        // get Mastery exp
        ItemMusicMetadata metadata = ItemMetadataStorage.GetMetadata(session.Player.Instrument.Value.Score.Id)?.Music;
        int masteryExpGain         = Math.Min(((session.ServerTick - session.Player.Instrument.Value.InstrumentTick) * metadata.MasteryValue) / 1000, metadata.MasteryValueMax);

        session.Player.Levels.GainMasteryExp(MasteryType.Performance, masteryExpGain);

        // get prestige exp
        int prestigeExpGain = (session.ServerTick - session.Player.Instrument.Value.InstrumentTick) / 1000 * 250;

        session.Player.Levels.GainPrestigeExp(prestigeExpGain);

        //TODO: get exp for normal level

        // remove instrument from field
        session.FieldManager.BroadcastPacket(InstrumentPacket.StopScore(session.Player.Instrument));
        session.FieldManager.RemoveInstrument(session.Player.Instrument);
        session.Player.Instrument = null;
    }
 private static void HandleStopScore(GameSession session, PacketReader packet)
 {
     session.Send(InstrumentPacket.StopScore(session.FieldPlayer));
     session.FieldManager.BroadcastPacket(InstrumentPacket.StopScore(session.FieldPlayer));
 }