Beispiel #1
0
 public override void PlayerLeft(object room, RoomPlayerEventArgs e)
 {
     if (StateMachine.IsInState(GameRuleState.FirstHalf))
     {
         e.Player.Chasser.ChaserWon++;
     }
     base.PlayerLeft(room, e);
 }
Beispiel #2
0
 public override void PlayerLeft(object room, RoomPlayerEventArgs e)
 {
     if (StateMachine.IsInState(GameRuleState.FirstHalf) ||
         StateMachine.IsInState(GameRuleState.HalfTime) ||
         StateMachine.IsInState(GameRuleState.SecondHalf))
     {
         e.Player.DeathMatch.Loss++;
     }
     base.PlayerLeft(room, e);
 }
Beispiel #3
0
 public override void PlayerJoined(object room, RoomPlayerEventArgs e)
 {
     base.PlayerJoined(room, e);
     e.Player.Session.SendAsync(new SArcadeStageBriefingAckMessage
     {
         Unk1 = Stage,
         Unk2 = SubStage,
         Data = new byte[] { 0, 0, 0 }
     });
 }
Beispiel #4
0
 public override void PlayerLeft(object room, RoomPlayerEventArgs e)
 {
     e.Player.BattleRoyal.Loss++;
     base.PlayerLeft(room, e);
 }
Beispiel #5
0
        public virtual void PlayerLeft(object room, RoomPlayerEventArgs e)
        {
            var plr = e.Player;

            plr.Mission.OnGoinClear();

            var b = plr.CharacterManager.Boosts.GetItems().First();

            if (b != null)
            {
                b.PlayTime += plr.RoomInfo.PlayTime;
            }

            // Change item status
            foreach (var @char in plr.CharacterManager)
            {
                var sec  = plr.RoomInfo.CharacterPlayTime[@char.Slot];
                var loss = (int)plr.RoomInfo.CharacterPlayTime[@char.Slot].TotalMinutes *
                           Config.Instance.Game.DurabilityLossPerMinute;
                loss += plr.RoomInfo.CharacterDeaths[@char.Slot] * Config.Instance.Game.DurabilityLossPerDeath;

                foreach (var item in @char.Weapons.GetItems().Where(item => item != null && item.Durability != -1))
                {
                    if (item.PeriodType == ItemPeriodType.Hours)
                    {
                        item.PlayTime += sec;
                        if (item.PlayTime >= TimeSpan.FromHours(item.Period))
                        {
                            plr.Inventory.Remove(item);
                        }
                        else
                        {
                            plr.Inventory.Update(item);
                        }
                    }
                    else if (item.PeriodType == ItemPeriodType.None)
                    {
                        item.LoseDurabilityAsync(loss).Wait();
                    }
                }

                foreach (var item in @char.Costumes.GetItems().Where(item => item != null && item.Durability != -1))
                {
                    if (item.PeriodType == ItemPeriodType.Hours)
                    {
                        item.PlayTime += sec;
                        if (item.PlayTime >= TimeSpan.FromHours(item.Period))
                        {
                            plr.Inventory.Remove(item);
                        }
                        else
                        {
                            plr.Inventory.Update(item);
                        }
                    }
                    else if (item.PeriodType == ItemPeriodType.None)
                    {
                        item.LoseDurabilityAsync(loss).Wait();
                    }
                }

                foreach (var item in @char.Skills.GetItems().Where(item => item != null && item.Durability != -1))
                {
                    item.LoseDurabilityAsync(loss).Wait();
                    if (item.PeriodType == ItemPeriodType.Hours)
                    {
                        item.PlayTime += sec;
                        if (item.PlayTime >= TimeSpan.FromHours(item.Period))
                        {
                            plr.Inventory.Remove(item);
                        }
                        else
                        {
                            plr.Inventory.Update(item);
                        }
                    }
                    else if (item.PeriodType == ItemPeriodType.None)
                    {
                        item.LoseDurabilityAsync(loss).Wait();
                    }
                }
            }
        }
Beispiel #6
0
 public virtual void PlayerJoined(object room, RoomPlayerEventArgs e)
 {
 }